Ich habe einen Ajax-Aufruf bei meinem Onkeyup-Ereignis, das überprüft, ob die angegebene E-Mail-Adresse in der Datenbank ist oder nicht. Mein Problem ist, dass ich keine richtige Lösung finden kann, um zu überprüfen, ob die Ajax-Antwort LEER ist, und wenn ja, muss ich eine Schaltfläche deaktivieren.Überprüfen, ob innerHTML leer ist
Dies ist die ajax.php Ausgabe:
$sql = "// the query";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
echo "<i>Yepp, this is taken</i>";
}
Dies ist das JavaScript für den Ajax-Aufruf und die Taste deaktivieren und Funktion (nur Ajax-Aufruf, wenn die E-Mail-Adresse gültig ist) aktivieren:
function checkEmail(str){
email = document.getElementById('user-email').value
AtPos = email.indexOf("@")
StopPos = email.lastIndexOf(".")
if (AtPos == -1 || StopPos == -1) {
document.getElementById('button-reg').disabled=true;
}else{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status == 200){
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax.php?q="+str,true);
xmlhttp.send();
}
var htmlstring = document.getElementById("txtHint").innerHTML;
htmlstring = htmlstring.replace(/^\s+/,'');
if(htmlstring==""){
document.getElementById('button-reg').disabled=false;
}else{
document.getElementById('button-reg').disabled=true;
}
}
Wie Sie kann ich mit Leerzeichen Eleminierung sehen versucht, aber kein Glück ... nach leer repsonse wird der Knopf noch nicht deaktiviert ...
kann mir jemand helfen hier? :) Danke vielmals!
haben Sie versuchen, eine "Rückkehr" nach if (ATPOS == -1 || StopPos == -1) hinzufügen? Aktuell werden die letzten 11 Zeilen der Funktion bei jedem Aufruf der Funktion aufgerufen. –