Ik heb echt gezocht, maar kon helaas geen bruikbare informatie vinden.
Ik wil dus waarden controleren in een formulier.
Deze moeten allemaal goedgekeurd worden voordat het formulier verzonden mag worden.
Tevens houd ik bij welke velden zijn gevalideerd
Dan is er een functie welke continueform bijhoudt:
En dan zijn er nog de functies:
- checkLand --> validated['land'] true of false
- checkAdres --> validated['adres'] true of false
- checkPlaats --> validated['plaats'] true of false
Als ik nu op submit click dan wordt het volgende uitgevoerd:
De timeouts gebruik ik zodat alle velden netjes achter elkaar gecontroleerd worden.
Maar wat blijkt: voordat deze timeouts worden uitgevoerd, wordt de if...then...else lus al uitgevoerd en wordt dus direct het formulier al dan niet verstuurd.
Stel dat ik gewoon netjes alles heb ingevuld, dan wordt het formulier dus niet verstuurd omdat continueform nog op false staat.
Nu kan ik wel met onblur alles regelen, maar er zitten ook standaard pulldowns in die standaard een goede waarde hebben.
Eerst moet dus alles gecontroleerd worden en dan moet aan de hand van continueform het formulier wel of niet worden gesubmit.
Helaas kan ik ook niet setTimeout('return continueform', 2500) gebruiken.
Want setTimeout heeft een functie nodig.
Hoe kan ik dit nu eens oplossen?!
Ik wil dus waarden controleren in een formulier.
Deze moeten allemaal goedgekeurd worden voordat het formulier verzonden mag worden.
PHP:
1
| var continueform = new Boolean(false); |
Tevens houd ik bij welke velden zijn gevalideerd
PHP:
1
2
3
4
| var validated = new Array(); validated['land'] = new Boolean(false); validated['adres'] = new Boolean(false); validated['plaats'] = new Boolean(false); |
Dan is er een functie welke continueform bijhoudt:
PHP:
1
2
3
4
5
6
7
8
9
| function errorHandling(){ if(validated['land']==false|| validated['adres']==false|| validated['plaats']==false){ continueform = false; }else{ continueform = true; } } |
En dan zijn er nog de functies:
- checkLand --> validated['land'] true of false
- checkAdres --> validated['adres'] true of false
- checkPlaats --> validated['plaats'] true of false
Als ik nu op submit click dan wordt het volgende uitgevoerd:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| function valideerAdres(){ setTimeout('checkLand()',250); setTimeout('checkAdres()',500); setTimeout('checkPlaats()',750); setTimeout('errorHandling()',1000); // variabele continueform bijwerken if(continueform==false){ return false; }else{ return true; } } |
De timeouts gebruik ik zodat alle velden netjes achter elkaar gecontroleerd worden.
Maar wat blijkt: voordat deze timeouts worden uitgevoerd, wordt de if...then...else lus al uitgevoerd en wordt dus direct het formulier al dan niet verstuurd.
Stel dat ik gewoon netjes alles heb ingevuld, dan wordt het formulier dus niet verstuurd omdat continueform nog op false staat.
Nu kan ik wel met onblur alles regelen, maar er zitten ook standaard pulldowns in die standaard een goede waarde hebben.
Eerst moet dus alles gecontroleerd worden en dan moet aan de hand van continueform het formulier wel of niet worden gesubmit.
Helaas kan ik ook niet setTimeout('return continueform', 2500) gebruiken.
Want setTimeout heeft een functie nodig.
Hoe kan ik dit nu eens oplossen?!