Php 使用javascript动态计算总和

Php 使用javascript动态计算总和,php,javascript,Php,Javascript,我想动态计算小计的总和,但我总是会遇到以下错误: document.getElementById("item_subtotal[" + cnt + "]") is null 我的javascript代码: function calculateTotalAll(numitems) { var cnt = 1; var totalAmt = 0; while(cnt <= numitems) { totalAmt = parseInt(total

我想动态计算小计的总和,但我总是会遇到以下错误:

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); 
}
函数calculateTotalAll(numitems){
var-cnt=1;
var totalAmt=0;

而(cnt该项尚未在您的页面中定义-请仔细检查以确保它确实在源中。

您的问题可能是那些方括号

从:

ID和名称标记必须以 字母([A-Za-z]),并可遵循 通过任意数量的字母、数字 ([0-9]),连字符(“-”),下划线 (“)、冒号(“:”)和句点 (“)


你已经很接近了,但是你需要检查有空值的字段,而不是仅仅假设它们包含数字

将您的功能更改为:

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;
}
函数计算器总计(numitems){
var totalAmt=0;

对于(var cnt=1;cnt,我将查看id是否存在,即

  while(cnt <= numitems) {
    var curItem = document.getElementById('item_subtotal[' + cnt + ']');
    if(curItem!=null){
        totalAmt = parseInt(totalAmt) + parseInt(curItem.value);
    }
    cnt++;
  }

while(cnt When I do example:alert(document.getElementById('item_subtotal[25]”).value);将获取值您可以发布您正在使用的元素的html吗?最后一行不需要
parseInt()
;您需要
string()
取而代之的是。方括号很好,并且经常用于php脚本。我想这行代码有一个问题:document.getElementById('item_subtotal['+cnt+']');因为它会提示if(parseInt(subtot.value)=='')为null.Help但是如果我用document.getElementById('item_subtotal[1]')测试它的话它工作正常。我不知道你在说什么。如果需要,检查null很容易,但是因为你应该知道有多少个元素,所以这似乎不是特别必要。我运行了程序,出现了一个错误:if(parseInt(subtot.value)=''为null
  while(cnt <= numitems) {
    var curItem = document.getElementById('item_subtotal[' + cnt + ']');
    if(curItem!=null){
        totalAmt = parseInt(totalAmt) + parseInt(curItem.value);
    }else{
        console.log('Couldn\'t find element item_subtotal[' + cnt + ']');
    }
    cnt++;
  }