用javascript循环一个表单循环?

时间:2012-12-28 03:16:31

标签: javascript forms loops

我有一个这样的表格:

<form name="calc" action="" id="calc">
<?php for($i=0; $i<15; $i++) { ?>
<input type="text" name="txt1[$i]" onkeyup="calcNumber()"/>
<input type="text" name="txt2[$i]" onkeyup="calcNumber()"/>
<input type="text" name="txt3[$i]" onkeyup="calcNumber()"/>
<span id="tot[$i]"></span>
<?php } ?>
</form>

这是javascript代码:

<script type="text/javascript">
function calcNumber() {

for(var j=0; j<15; j++) {

var totNumber[j] = document.calc.txt1[j].value + document.calc.txt2[j].value + document.calc.txt3[j].value;

document.getElementById('tot[j]').innerHTML = totNumber[j];
}

}
</script>

没有错误..但也没有结果。请让我知道我做错了什么。感谢。

2 个答案:

答案 0 :(得分:0)

将您的html修复为以下内容。

<input type="text" name="txt1[<?php echo $i;?>]" onkeyup="calcNumber()"/>
<input type="text" name="txt2[<?php echo $i;?>]" onkeyup="calcNumber()"/>
<input type="text" name="txt3[<?php echo $i;?>]" onkeyup="calcNumber()"/>
<span id="tot[<?php echo $i;?>]"></span>

您当前的javascript行:

document.getElementById('tot[' + j + ']').innerHTML = totNumber;

totNumber不是array,在这种情况下不需要。

问题

您呈现的html正是您在问题中提供的html,$i不会被数字取代,因为它不在<?php ?>标记内。

答案 1 :(得分:0)

我已经找到了问题,只需在totfunction calcNumber()之后插入数组,但不能在tot内插入数组。

非常感谢你们的帮助。