Salve a tutti.
Premetto che utilizzo AJAX da poco tempo e forse non ho ancora le idee molto chiare.
Ho un form contenente un unico campo input che inizia con questa riga di codice:
codice:
<form method=post action='nl3.php' onsubmit='return checkEmail(emailu)'>
Il mio obiettivo è che il contenuto del campo venga verificato tramite una chiamata AJAX per controllare che il valore immesso esista nel database. Se AJAX ritorna 0 (cioè il valore immesso non esiste) vorrei dare un Alert e bloccare il form.
Questo è il mio codice JS:
codice:
function checkEmail(campo) {
var email = campo.value;
if (email=="") {
alert("Si prega inserire indirizzo email");
return false;
}
myRequest = CreateXmlHttpReq(myHandler);
myRequest.open("GET","../AJAX/SERV_checkemail.php?email="+email);
myRequest.send(null);
return myHandler();
}
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = handler;
return xmlhttp;
}
function myHandler() {
if (myRequest.readyState == 4 && myRequest.status == 200) {
alert(myRequest.responseText);
}
if (myRequest.readyState == 4 && myRequest.status != 200) {
alert("File php non disponibile " + myRequest.status);
}
}
In altre situazioni ho usato codice simile per scrivere messaggi o dati in un div e funziona bene, ma qui non riesco a capire come restituire un "false" al form per impedirne l'invio.
Chiaramente è proprio una mia lacuna concettuale, non un errore di codice. Grazie mille a chi mi aiuterà.