2012-12-28 218 views
1

我有一个这样的形式:通过JavaScript循环表单循环?

<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> 

没有错误。但没有任何结果。请让我知道我做错了什么。谢谢。

+0

'id'不是'name' – mkoryak

+0

请发布输出HTML以及,不只是PHP ... – Dennis

+0

@mkoryak你的意思是我必须写这样的输入字段? ]”id =“txt1 [<?php echo $ i;?>]”/> –

回答

0

我想通了这个问题,只需插入阵列totfunction calcNumber(),而不是内tot

非常感谢你们的帮助。

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 ?>标签。

+0

不要忘记修复你的html,并在输入中包含一个'id'属性;) – mkoryak

+0

感谢您直接的点解释。现在我已经明白了这个问题的形式。但我不知道为什么我仍然无法工作。 字段仍然为空。 –