我正在运行ajax请求,然后一旦我得到结果,我选择是否应该继续或者表单不应该提交。我正在检查电子邮件是否存在。
问题是我将返回false从success:
中移出,因为它不在那里工作,而现在在单独的函数中它也不起作用。我得到alert("FALSE");
,但表单仍然提交,这是不好的,因为我想要弹出错误。
$.ajax({
type: "POST",
url: "/ajax/checkdata.php",
data: "email="+email,
success: function(data){
var returned = true;
if (data == "Email Exists") {
returned = false;
} else {
}
emailModal(returned);
}
})
function emailModal(result){
if (result) {
alert("TRUE");
} else {
alert("FALSE");
return false;
}
}
答案 0 :(得分:3)
您必须始终阻止表单提交,然后检查电子邮件数据,以显示错误或使用原生提交处理程序提交表单
$('form').on('submit', function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/ajax/checkdata.php",
data: {email : email},
context: this
}).done(function(data) {
if (data == "Email Exists") {
alert(data);
} else {
this.submit();
}
});
});