我正在嘗試執行用戶名可用性的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