Ajax调用函数成功返回false不起作用

时间:2017-04-04 10:14:34

标签: javascript jquery ajax

我正在运行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;
  }
}

1 个答案:

答案 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();
        }
    });
});