我正在尝试执行用户名可用性的ajax检查,并仅在用户名可用时提交表单。jQuery验证 - submitHandler和AJAX响应
使用jQuery验证插件,我已经设置:
submitHandler: function(form) {
if (ajaxCheck() == true){
alert('true');
}
}
而且我的用户名检查功能如下:
function ajaxCheck(){
usernameVal = $("#username").val().toLowerCase();
usernameVal = usernameVal.replace(/[\s\W]/g, '');
$.post("/app/signup/username/", {
username: usernameVal
}, function(response){
if (response == "Username not available.") {
$("#signup").validate().showErrors({ "username" : "Username Not Available." });
alert('false');
return false;
} else {
alert('true');
return true;
}
});
}
的问题是它没有返回true或false到submitHandler。我不确定是否因为返回语句在$ .post内?
如果我独立运行ajaxCheck,它会根据可用性提醒false和true,如果从submitHandler调用它,则不会返回false/true。
任何洞见赞赏。
我认为该方法得到完成之前,它返回一个值,因为它是异步调用,我对此90%肯定... – kobe 2010-12-07 18:48:12