javascript - 如何在ajax成功中中断执行并显示错误?

标签 javascript jquery ajax jsp

我正在使用AJAX调用来检查一些验证,然后由HTML正常提交表单。在我的Ajax电话中,

    function checkId() {
    var str = $("#formObj").serialize();
    $.ajax({
        type : "post",
        data : str,
        url : "checkForId.mt",
        async : false,
        success : function(txt) {
            if (txt == "pass") {
                return "true";
            } else if (txt == "same") {
                $("#errorMsgIdSame").removeClass("hidden");
                return "false";
            }
        },
        error : function() {
            alert("Error");
        }
    });
}

如果控件进入“通过”,则执行应继续。如果是“相同”,则执行应停止。 我正在从其他一些方法中称此Ajax方法。

    function validateForm() {
    var isValid = true;
    isValid = checkId();
    if (!isValid) {
        $("#errorMsg").removeClass("hidden");
    }
    return isValid;
}

此ValidatiOoform在按钮单击时被调用。现在,AJAX代码正在工作,但ValidateForm方法没有采用AJAX方法的返回。

需要有关如何执行此操作的方向,以便从Ajax方法捕获返回以及如何从Ajax方法返回。

最佳答案

如果我正确理解你的问题,你想从外部函数返回内部函数的结果。 checkId 的定义就是这样做的。

function checkId() {
  var result;
  var str = $("#formObj").serialize();
  $.ajax({
    type : "post",
    data : str,
    url : "checkForId.mt",
    async : false,
    success : function(txt) {
      if (txt == "pass") {
        result = true;
        return;
      } else if (txt == "same") {
        $("#errorMsgIdSame").removeClass("hidden");
        result = false;
        return;
      }
    },
    error : function() {
      alert("Error");
    }
  });
  return result;
}

关于javascript - 如何在ajax成功中中断执行并显示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22794051/

相关文章:

javascript - 用 React 兼容的样式替换所有 html 样式属性

jquery ui - 将鼠标悬停在父元素上应该触发在子元素上向下滑动

javascript - 加载更多的 Gif 在我的 Rails 应用程序中不显示 Ajax 和 jQuery

javascript - dart:如何动态传输数据?

javascript - 为什么 setState throw 对象作为 React 子对象无效?

javascript - 拆分账单 - JavaScript 练习

javascript - 如何将 JavaScript 字符串下载为文件

jquery - 如何使 Bootstrap 日期选择器只读?

php - 对齐动态生成的表单字段

php - Ajax/js 刷新,限制从 php/sql 显示/获取的内容