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++;
}