php – 使用javascript动态计算总和

我想动态计算小计的总和,但我总是得到这个错误:

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;
}
点赞