我已經使用jquery驗證來驗證電子郵件。但是在成功函數中其值被改變的變量在其外部是不可訪問的。它可以通過async = false來完成,但是破壞了Ajax的目的。在成功函數外使用javascript變量
下面是代碼:
$.validator.addMethod('verifyemail',function(value,element){
$.ajax({
type: "POST",
url : $.app.urls('base_url')+'account/check_email',
data: {'email' : value},
success: function(msg){
//If email exists, set response to true
if(msg.status == 'false')
respond = false;
else
respond = true;
}
})
console.log(respond);
return respond;
}, "Email is Already Taken");
__Problem:__嘗試使用未定義的變量。 __解釋:__ AJAX請求需要一些時間,您不能在$ .ajax調用之後讀取結果。 __Solution:__事件驅動的程序流程,單獨的驗證器方法和AJAX請求。檢查有效並且默認爲無效。 –