【发布时间】:2013-07-17 05:06:05
【问题描述】:
我使用 jquery 验证来验证电子邮件。但是在success函数中改变了值的变量在它之外是不可访问的。可以使用 async=false 来完成,但这会破坏 Ajax 的用途。
下面是代码:
$.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");
【问题讨论】:
-
问题: 试图使用未定义的变量。 说明: AJAX 请求需要一些时间,在 $.ajax 调用后您无法立即读取结果。 解决方案: 事件驱动的程序流、单独的验证器方法和 AJAX 请求。检查有效,默认为无效。
标签: javascript jquery ajax scope