当我期望它返回false或true时,函数validate()返回undefined。为什么会这样?现在我只是输入这个,因为stackoverflow不会让我发布这个问题,因为它主要是代码。
function validate() {
var isFormValid = false;
var emailValid = false;
var inputValid = false;
var passValid = true;
//VALIDATE EMAIL
var emailInput = $("input[type='email']");
$.get("/checkEmail", {
email: emailInput.val()
}, function(data) {
if (data.userExists) {
emailInput.removeClass("valid");
emailInput.addClass("invalid");
return false;
} else {
emailValid = true;
emailInput.removeClass("invalid");
emailInput.addClass("valid");
}
if (passValid && emailValid && inputValid) {
return true;
}
});
//ADD VALID CLASS TO INPUTS
var inputs = $("input,textarea");
inputs.each(function() {
if ($(this).val() != "") {
inputValid = true;
$(this).removeClass("invalid");
$(this).addClass("valid");
} else {
$(this).removeClass("valid");
$(this).addClass("invalid");
return false;
}
if (passValid && emailValid && inputValid) {
return true;
}
});
//VADIDATE PASSWORD
var pass = $("input[name='password']");
var repass = $("input[name='repassword']");
if (pass.val() != repass.val()) {
passValid = false;
repass.removeClass("valid");
repass.addClass("invalid");
return false;
}
}
$(document).ready(function() {
$("#registerForm").submit(function(event) {
console.log(validate());
if (!validate()) {
event.preventDefault();
}
});
});
答案 0 :(得分:0)
从$.get()
返回validate
;在true
链接到false
来电时返回.then()
或$.get()
;在.then()
调用时使用.fail()
,.submit()
来处理来自.then()
的{{1}}返回的承诺值
validate