首页 > 解决方案 > 返回 false 和 e.stopImmediatePropagation 似乎不起作用

问题描述

我在 jQuery 中有以下代码。我有 e.stopImmediatePropagation() 并返回 false 以便代码不会继续执行 POST 的位置。如何防止代码继续?

$("#saveBtn").on("click", function (e) {

       var obj = { name: $("#sName").val() };
       $.ajax({
                url: '@Url.Action("CheckExist", "PMP")',
                type: "GET",
                async: true,
                data: obj,
                success: function (data) {
                    if (data != null) {                          

                        if (data == 'True')
                        {
                            alert('HERE');                               
                            e.stopImmediatePropagation();
                            return false;
                         }

                    }
                }
        });

       // I WANT THE CODE TO NOT DO THE POST IF data == 'True' but it seems to continue regardless of return false
       $.ajax({
            type: "POST",
            url: data_appRootPath + "@Url.PMPActionUrl((object)@ViewBag.Org_ID,                 
            "GetType", null, null, null)",
            contentType: false,

标签: jquery

解决方案


您所做的是两个异步操作。这意味着两个 ajax 请求同时被触发(并行)。当来自 ajax 请求的响应回来时,取消第二个 ajax 请求已经晚了。

如果您希望发生这种情况,您需要在第一个请求的回调中触发第二个请求。

所以,这样的事情:

$("#saveBtn").on("click", function (e) {

       var obj = { name: $("#sName").val() };
       $.ajax({
                url: '@Url.Action("CheckExist", "PMP")',
                type: "GET",
                async: true,
                data: obj,
                success: function (data) {
                    if (data != null) {                          

                        if (data == 'True')
                        {
                           // I WANT THE CODE TO NOT DO THE POST IF data == 'True' but it seems to continue regardless of return false
                           $.ajax({
                                type: "POST",
                                url: data_appRootPath + "@Url.PMPActionUrl((object)@ViewBag.Org_ID,                 
                                "GetType", null, null, null)",
                                contentType: false,
                         }

                    }
                }
        });


推荐阅读