2012-12-28 215 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

感謝您直接的點解釋。現在我已經明白了這個問題的形式。但我不知道爲什麼我仍然無法工作。 字段仍然爲空。 –