Ik probeer nou al een tijd een formulier te checken op de contents. Ik heb meerdere inputvelden waar getallen ingevuld moeten worden. Ik gebruik een Javascript script om elke input bij langs te gaan, en te controleren met Regular Expression er sprake is van een getal van 0 t/m 10 met maximaal 1 cijfer achter de komma (en in dit geval alleen nog maar een punt).
Er zijn vaak minimaal 10 inputvelden, en het aantal inputvelden is afhankelijk van een keuze die eerder is gemaakt.
Het gaat er om dat de input wordt gecontroleerd, of het aan de genoemde voorwaarden voldoet. Ik gebruik daarvoor dit script:
(wist even niet hoe ik de code moest laten zien, heb maar quote gedaan, ziet er niet erg overzichtelijk uit)
Het formulier is op deze manier opgebouwd (versimpelt):
Het probleem is dat hij niet werkt. De eerste keer in de loop gaat hij altijd door, wat je ook invuld. De tweede keer (het tweede invoerveld) heeft hij altijd verkeerd. Ik heb de Regular Expression meerdere malen geprobeert op de handige site http://www.gskinner.com/RegExr/ en hij doet wat ik wil, behalve dan dat hij een getal met een komma nog fout rekent. Als iemand dat nog zou kunnen toevoegen zou ik daar ook blij mee zijn.
Wat is er fout aan het script? Hoe kan ik hem verbeteren?
Edit: Code tags toegevoegd.
Er zijn vaak minimaal 10 inputvelden, en het aantal inputvelden is afhankelijk van een keuze die eerder is gemaakt.
Het gaat er om dat de input wordt gecontroleerd, of het aan de genoemde voorwaarden voldoet. Ik gebruik daarvoor dit script:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <script type="text/javascript"> function checkForm(form) { var m = null; for (var x=4; form.elements[x]; x++ ) { if (form.elements[x].id != "nocheck") { var text = form.elements[x].value; var re = /^([0-9]{1})(?:\.[0-9]{1})?(?:[0]{1})?$/g; m = re.exec(text); alert(m); if (m == null) { alert( "U bent vergeten een getal in te voeren, of een getal is niet correct ingevoerd in rij " + (x-4) ); form.elements[x].focus(); return false ; } } } return true; } </script> |
(wist even niet hoe ik de code moest laten zien, heb maar quote gedaan, ziet er niet erg overzichtelijk uit)
Het formulier is op deze manier opgebouwd (versimpelt):
HTML:
1
2
3
4
| <form method='post' action='index.php' onsubmit='return checkForm(this)'> <input type="hidden" name="bla" value="bla" id="nocheck"/> <!-- hier 4 van, met telkens een andere naam en value --> <input type='text' name=getal[] value='' /> <!-- Hier dus een variabel aantal van --> </form> |
Het probleem is dat hij niet werkt. De eerste keer in de loop gaat hij altijd door, wat je ook invuld. De tweede keer (het tweede invoerveld) heeft hij altijd verkeerd. Ik heb de Regular Expression meerdere malen geprobeert op de handige site http://www.gskinner.com/RegExr/ en hij doet wat ik wil, behalve dan dat hij een getal met een komma nog fout rekent. Als iemand dat nog zou kunnen toevoegen zou ik daar ook blij mee zijn.
Wat is er fout aan het script? Hoe kan ik hem verbeteren?
Edit: Code tags toegevoegd.