2011-07-08 138 views
0

我在我的PHP文件中有一個提交按鈕,如下所示。禁用/啓用按鈕

<input type="submit" name="submit" value="submit" disabled="true" /> 

現在我發送使用請求對象的異步請求,

document.getElementById("username").onblur=function(){ 
username(this.value); 
}; 

function username(value) 
{ 
request = createRequest(); 
if(request==null) { 
alert("Unable to create request"); 
return; 
} 
var url= "sign_up.php?value=" + 
escape(value); 
request.open("GET",url,true); 
request.onreadystatechange = displayDetails; 
request.send(null); 
} 
function displayDetails() { 
if (request.readyState == 4) { 
if (request.status == 200) { 
checked = document.getElementById("check"); 
checked.innerHTML = request.responseText; 
document.getElementById("submit").disabled="false"; 
} 
} 
} 

這裏它基本上是檢查用戶名的可用性,現在我能提交按鈕,如果用戶名enteres可用。但它確實不啓用按鈕。有人能告訴我爲什麼嗎?

+0

請檢查就緒狀態是否爲4或不 –

+0

你檢查過螢火蟲嗎? – anu

+0

您能否請驗證「check」元素的innerHTML是否正在使用reponseText進行更新?這是在啓用提交按鈕之前完成的。如果它已更新,那麼我們需要查看您的HTML。請發佈HTML代碼片段。 –

回答

1

擺脫引號,你所做的是在HTML元素的disabled屬性中分配一個字符串「false」。更改最後一行是:

document.getElementById("submit").disabled = false; 
0

禁用:

document.getElementById("submit").setAttribute('disabled', 'disabled'); 

啓用:

document.getElementById("submit").removeAttribute('disabled'); 
0

jQuery的verison

$("#username").blur(function(){ 
    $("#submit").attr("disabled","disabled"); 
    $.ajax({ 
     method: "GET", 
     dataType: "html", 
     url: "sign_up.php", 
     data: { 
      cmd: "check_username", 
      value: $(this).val() 
     }, 
     success: function(data){ 
      $("#check").html(data); 
      $("#submit").removeAttr("disabled"); 
     }, 
     error: function(){ 
      $("#check").html("ajax error"); 
      $("#submit").removeAttr("disabled"); 
     } 
    }); 
}); 
+0

謝謝,但我真的瞭解任何事情,因爲我不熟悉jquery。出於好奇,真正的jQuery是什麼? – Kraken

+0

它使跨瀏覽器JavaScript 10x更容易。 http://jquery.com/ –