我想动态计算小计的总和,但我总是得到这个错误:
document.getElementById("item_subtotal[" + cnt + "]") is null
我的javascript代码:
function calculateTotalAll(numitems) {
var cnt = 1;
var totalAmt = 0;
while(cnt <= numitems) {
totalAmt = parseInt(totalAmt) + parseInt(document.getElementById('item_subtotal[' + cnt + ']').value);
cnt++;
}
document.getElementById('order_total').value = parseInt(totalAmt);
}
最佳答案 你非常接近,但你需要检查具有空值的字段,而不是假设它们包含数字.它仅适用于此
JS fiddle中的少量修改
将您的功能更改为:
function calculateTotal(numitems) {
var totalAmt = 0;
for (var cnt = 1; cnt <= numitems; cnt++) {
var subtotal = document.getElementById('item_subtotal[' + cnt + ']');
if (subtotal.value === null || subtotal.value === '') {
continue;
}
totalAmt += (subtotal.value * 1);
}
document.getElementById('order_total').innerHTML = totalAmt;
}