-1

我正在尝试计算除 P&P 之外的精选 CD 的总数。我正在使用的代码总共是 NaN?

这里很迷茫。我究竟做错了什么?

function calculateTotal() {
    var Collection method = document.getElementById('collection').value +
    var select CDs = document.getElementById('selectCD').value;
    var total = document.getElementById('total');
    total.value = 'collection'(total) + 'selectCD'(total);
}

这是一个带有完整代码的 JSFiddle 。

4

1 回答 1

1

在您的小提琴中collection,是包含selectCD输入字段的 div(不是输入字段)。你不能这样做。divElm.value

然后,您小提琴中的 php 代码通常能够输出多于一张 cd,因此您需要将所选 cd 的总数添加到。

使您的代码正常工作所需的最小更改是:

function calculateTotal(){
    var coll = document.getElementsByName('deliveryType'), 
         cds = document.getElementsByName('cd[]'),
       cdTot = 0,
           L = coll.length;
    while(L--){if(coll[L].checked){   //get shipping costs
        coll=Number(coll[L].getAttribute('title')); break; 
    }         }
    L=cds.length;
    while(L--){if(cds[L].checked){    //add total prices
        cdTot += Number(cds[L].getAttribute('title')); 
    }         }
    //  output total
    document.getElementById('total').value = coll + cdTot;
}

此外,您还想设置更多触发器来运行calculateTotal(来自运费和选定的 cd;这样,如果它们发生变化,总字段将更新为)。
根据您的小提琴查看这些更改(和一些其他修复)的工作小提琴,这样您就可以在实际中看到它(计算)。

但是,我确实希望这是针对学校问题而不是针对实时网店。我会重新考虑我的策略,因为我认为您目前正在努力解决一个大的安全漏洞。

祝你好运!

于 2013-04-15T14:47:26.990 回答