Loop door een formulierlus met javascript?

Ik heb een formulier als dit:

<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()"/>

<?php } ?>
</form>

En dit is een javascript-code:

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

Geen fout .. Maar ook geen resultaat. Laat me alsjeblieft weten wat ik fout heb gedaan. Bedankt.

1
ja ru de
een id is geen naam
toegevoegd de auteur mkoryak, de bron
Plaats de uitvoer-HTML ook, niet alleen de PHP ...
toegevoegd de auteur Dennis, de bron
Plaats de uitvoer-HTML ook, niet alleen de PHP ...
toegevoegd de auteur Dennis, de bron
@mkoryak Bedoel je dat ik de invoervelden als volgt moet schrijven? <input type = "text" name = "txt1 [<? PHP echo $ i;?>]" id = "txt1 [<? PHP echo $ i;?>]" />
toegevoegd de auteur Lorek Bryanson, de bron
@mkoryak Bedoel je dat ik de invoervelden als volgt moet schrijven? <input type = "text" name = "txt1 [<? PHP echo $ i;?>]" id = "txt1 [<? PHP echo $ i;?>]" />
toegevoegd de auteur Lorek Bryanson, de bron
Heeft iemand nog andere ideeën? Ik kon dit nog steeds niet laten werken.
toegevoegd de auteur Lorek Bryanson, de bron
Heeft iemand nog andere ideeën? Ik kon dit nog steeds niet laten werken.
toegevoegd de auteur Lorek Bryanson, de bron

4 antwoord

Fix your html to the following.

<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()"/>

And the current line of your javascript:

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

totNumber isn't an array, and don't need to be in this case.

Het probleem

Uw gesmolten html is precies de html die u op uw vraag heeft opgegeven, $ i wordt niet vervangen door het nummer omdat deze niet binnen <? Php?> tags valt.

0
toegevoegd
vergeet niet om je html te repareren en een attribuut id op de ingangen op te nemen;)
toegevoegd de auteur mkoryak, de bron
Bedankt voor je directe toelichting. Nu heb ik begrepen dat het probleem in de vorm is. Maar ik weet niet waarom ik het nog steeds niet kon laten werken. Het veld is nog leeg.
toegevoegd de auteur Lorek Bryanson, de bron

Fix your html to the following.

<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()"/>

And the current line of your javascript:

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

totNumber isn't an array, and don't need to be in this case.

Het probleem

Uw gesmolten html is precies de html die u op uw vraag heeft opgegeven, $ i wordt niet vervangen door het nummer omdat deze niet binnen <? Php?> tags valt.

0
toegevoegd
vergeet niet om je html te repareren en een attribuut id op de ingangen op te nemen;)
toegevoegd de auteur mkoryak, de bron
Bedankt voor je directe toelichting. Nu heb ik begrepen dat het probleem in de vorm is. Maar ik weet niet waarom ik het nog steeds niet kon laten werken. Het veld is nog leeg.
toegevoegd de auteur Lorek Bryanson, de bron

Ik heb het probleem ontdekt, plaats array na tot in functie calcNumber() , maar niet binnen tot .

Heel erg bedankt voor je hulp.

0
toegevoegd

Ik heb het probleem ontdekt, plaats array na tot in functie calcNumber() , maar niet binnen tot .

Heel erg bedankt voor je hulp.

0
toegevoegd