我對我的onkeyup事件有一個ajax調用,它檢查給定的電子郵件地址是否在數據庫中。我的問題是,我找不到一個正確的解決方案來檢查ajax響應是否爲空,如果是,我需要禁用一個按鈕。檢查innerHTML是否爲空
這是ajax.php輸出:
$sql = "// the query";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
if($num_rows>0){
echo "<i>Yepp, this is taken</i>";
}
這是JavaScript的Ajax調用按鈕禁用和啓用功能(Ajax調用只有在電子郵件地址是有效的):
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;
}
}
正如你可以看到我試着用空格elemination,但沒有運氣...空repsonse後按鈕依然沒有禁用...
有人可以幫助我在這裏? :) 非常感謝!
做你嘗試添加 「返回」 後,如果(AtPos == -1 || StopPos == -1)?目前,每次調用函數時都會調用函數的最後11行。 – 2012-04-03 13:41:01