1
我有一個簡單的表單,用於註冊一個新用戶。我想阻止用戶再次提交相同的電子郵件ID。因此,在提交表單之前,如果電子郵件ID存在或不存在,我希望進行Ajax檢查。如果電子郵件ID存在,我會提醒用戶。如果沒有,我讓表單提交。通過Javascript表單Sumbit執行ajax檢查
$("#sign_in_form").submit(function(event){
event.preventDefault();
$.post("http://xyz.com/check_if_user_exists", {
email : $("#contact_person_email").val()
}).done(function(data) {
var res = parseInt(data);
if(res==1){
//Email Exists
alert("Email exists . Please use different email ");
return false; //----------------------------1)
}else{
//Email doesnt exist
return true; //--------------------------- 2)
}
});
//end of function
});
這段代碼的問題是由於使用Javascript的異步性質,函數結束的結果從AJAX後語句返回之前也。因此,在1)和2)返回錯誤或返回true語句不起作用。什麼是處理這個問題的正確方法?
但是這不會導致到$(「#sign_in_form」)提交()函數被再次調用,因此遞歸發生了什麼? –
不,因爲在節點元素(js)上使用submit()將不會觸發jquery提交處理程序 –
+1但OP代碼中的問題是什麼?如果他只想調用alert而不是自動提交,會怎樣? –