我已经使用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请求。检查有效并且默认为无效。 –