在以下代碼中,ajax調用可正常工作,isTaken
已正確更新。但return isTaken
在ajax調用完成之前執行,因此它始終返回初始false
設置。 async = true
已棄用,那麼如何在返回正確更新的isTaken
響應之前等待ajax調用完成?帶有ajax時間問題的jquery驗證程序
$.validator.addMethod("checkExists",
function (value, element) {
var email = $("#email").val();
var data = {email: email};
var isTaken = false;
$.ajax({
type: "POST",
url: "http://localhost/CFBserver/check_email.php",
data: data,
success: function (response) {
isTaken = (response == 1) ? true : false;
}
});
return isTaken;
},
"This username is already taken! Try another."
);
檢查這:https://jqueryvalidation.org/remote-method/ –