2013-07-28 51 views
0

我有一個代碼,將檢查用戶名是否在數據庫中可用,代碼可以顯示錯誤消息,該電子郵件已存在,但當我按下即使用戶名已經存在,提交按鈕也會在數據庫中插入用戶名。禁用提交按鈕,如果用戶名已經存在使用AJAX和PHP

這裏是我的代碼:

function validateForm(){ 
<script> 
$(document).ready(function() { 
    $("#Name").change(function() { 
     var username = $("#Name").val(); 
     var msg = $("#msg"); 
     if (username.length > 2) { 
      $("#msg").html('Checking availability'); 
      $.ajax({ 
       type: "POST", 
       url: "check_availability.php", 
       data: "Name=" + username, 
       success: function (messagess) { 
        $("#msg").ajaxComplete(function (event, request) { 
         if (messagess.indexOf('OK') > 0) { 
          $("#Name").removeClass("exists"); 
          $("#Name").addClass("avail"); 
          msg.html('the user name is available</font>'); 
         } else { 
          $("#Name").removeClass("avail"); 
          $("#Name").addClass("exists"); 
          msg.html('the user name is already exists'); 
         } 
        }); 
       } 
      }); 
     } 
    }); 
}); 
} 
</script> 
</head> 
<body> 

<form action="" method="post" name="form" onsubmit="return validateForm()">  
User Email:&nbsp; 
<input type="text" name="Name" id="Name" value="" /> 
<span id="msg"></span> 
</form> 
</body> 
</html> 
+1

總是檢查服務器端。即使使用JavaScript驗證,也很容易繞過該驗證。如果用戶名已被使用,則在服務器端發送錯誤。不要僅僅依靠來自客戶端的數據來驗證。 – Anigel

+0

此外,請使用我們的搜索功能。參見[如何使用jquery禁用提交按鈕](http://stackoverflow.com/q/1237896/911182) – Herbert

回答

1

你想的要禁用元素上使用.attr('disabled', 'disabled'),如果檢查返回該用戶名已經存在。而要刪除禁用,您將使用.removeAttr('disabled')

只是一個建議,如果你還沒有拋出一個後備PHP驗證檢查,如果JavaScript被禁用,那裏仍然有驗證。

相關問題