Crew PHP |
|
edit: Opgelost, voor oplossing zie onderaan
-----------------------------------------
Ik heb een dingetje gemaakt waar js kijkt of alles is ingevuld. Dat lukt. Ik heb ook dat je een alert krijgt wat fout is, en daarna focus()ed op waar de fout is.
T probleem is dat mn form daarna submit, dus de focus en de waardes weg zijn. Ik dacht dat dat met een true en false kon, maar die wil dan niet zo.
Mn js:
function validate(){
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var contactNaam1 = document.getElementById('contactNaam');
var contactMail1 = document.getElementById('contactMail');
var contactSubjl = document.getElementById('contactSubj');
var contactMsg1 = document.getElementById('contactMsg');
var contactSubmit1 = document.getElementById('contactSubmit');
if(contactNaam1.value.length < 5){
alert("Uw naam moet minstens 5 tekens zijn!");
contactNaam1.focus();
return false;
}
else if(contactMail1.value.length<5 || !filter.test(contactMail1.value)){
alert("Onjuist email adres!");
contactMail1.focus();
return false;
}
else if(contactSubjl.value.length<5){
alert("Uw onderwerp moet minsten 5 tekens lang zijn");
contactSubjl.focus();
return false;
}
else if(contactMsg1.value.length<10){
alert("Uw bericht moet minsten 10 tekens lang zijn");
contactMsg1.focus();
return false;
}
else{ return true;}
}
function validate(){ var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; var contactNaam1 = document.getElementById('contactNaam'); var contactMail1 = document.getElementById('contactMail'); var contactSubjl = document.getElementById('contactSubj'); var contactMsg1 = document.getElementById('contactMsg'); var contactSubmit1 = document.getElementById('contactSubmit'); if(contactNaam1.value.length < 5){ alert("Uw naam moet minstens 5 tekens zijn!"); contactNaam1.focus(); return false; } else if(contactMail1.value.length<5 || !filter.test(contactMail1.value)){ alert("Onjuist email adres!"); contactMail1.focus(); return false; } else if(contactSubjl.value.length<5){ alert("Uw onderwerp moet minsten 5 tekens lang zijn"); contactSubjl.focus(); return false; } else if(contactMsg1.value.length<10){ alert("Uw bericht moet minsten 10 tekens lang zijn"); contactMsg1.focus(); return false; } else{ return true;} }
mn submitje:
<input type="submit" id="contactSubmit" name="contactSubmit" value="" onclick="validate(); return false;" />
<input type="submit" id="contactSubmit" name="contactSubmit" value="" onclick="validate(); return false;" />
Door die false in de submit stopt ie met submittene n krijg ik mn alert. Maar met goed gebeurd er ook niets.
Iemand die weet hoe ik het fix?
ps, ik weet dat js uitschakelbaar is, k validate ook met php.
edit:
Het is dus de bedoeling dat als je geen js hebt, wel kan submitten. Al lijkt me dat niet een probleem als JS zorgt dat de submit niet doorgaat
-------------
De oplossing:
Ik heb boven de functie var validated = false; gezet.
Vervolgens overal alle 'return false;' weggehaald, en de 'return true;' veranderd in 'validated = true';
en dan mn submitje zo:
onclick="validate(); return validated;"
onclick="validate(); return validated;"
|