De JS code past wel het "formulier aan zoals ik wens alleen hij geeft geen variable / waarde terug voor verder validatie van het formulier... Wat doe ik fout?
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if(xmlhttp.responseText == 1){
//maak achtergond groen
document.getElementById(field+'_img').innerHTML= '<img src="pass.gif" alt="help" width="14" height="14"/>';
var r = '1';
return r;
}else{
//helaas we hebben een error
document.getElementById(field+'_img').innerHTML= '<img src="fail.gif" alt="help" width="14" height="14" onmouseover="domTT_activate(this, event, \'content\', xmlhttp.responseText, \'trail\', true, \'delay\', 0);"/>';
//geen error block weer
var r = '2';
return r;
}
}
Zie, je maakt een functie aan. Dat is de minder leuke kant van asynchroon, deze functie loopt niet meer gelijk of in de vorige validate2-functie.
Hoe je dit moet oplossen weet ik zo even niet, [google]sajax[/google] (een of ander php-ajax framework) heeft er een oplossing voor weet ik, al weet ik zo niet hoe die werk.
Een andere oplossing is wel om met 1 functie alle velden te blokkeren tegen veranderingen, en de request uit te voren. Daarna, waneer er dus antwoord is gegeven, komt de 2e functie in beeld, die dan de velden weer unlockt (of wat het dan ook maar moet doen) Een aparte functie voor het verzoek en het antwoord dus.