javascript - AJAX 函数甚至在第一行 jQuery 按钮点击之前就被调用了,为什么?

标签 javascript jquery ajax asp.net-mvc

我正在开发 MVC 应用程序,我必须在单击按钮时隐藏按钮并在 ajax 请求完成时显示。但是按钮在所有请求完成后隐藏。以下是我尝试过的。

<input type="button" id="btnCalculateAndSave" value="Calculate & Save" style="float: right" />

下面是 jQuery click,即使它也有调用相同按钮点击的 ajax 函数。

$("#btnCalculateAndSave").on("click", function (e) {
  $("#btnCalculateAndSave").hide();

  //Several lines for validation

  $.ajax({
    url: '@Url.Action("myControllerFunction", "myController")',
    type: "GET",
    async: false,
    cache: false,
    dataType: "JSON",
    data: { 
      "p1": v1, 
      "p2": v2
    },
    success: function(result) {
    }  
  }
}
});

因为我必须防止多次按钮单击事件。所以按钮是隐藏的,但在 ajax 的所有过程发生之后,甚至按钮隐藏代码都在 jQuery 单击事件的第一行中。

最佳答案

请在隐藏函数中编写主要代码。

$("#btnCalculateAndSave").hide(function(){ /* Main Code */ });

下面是你的主要代码。

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

 $.ajax({
    url: '@Url.Action("myControllerFunction", "myController")',
    type: "GET",
    async: false,
    cache: false,
    dataType: "JSON",
    data: { 
      "p1": v1, 
      "p2": v2
    },
    success: function(result) {
    }  
  }
});

});

});

关于javascript - AJAX 函数甚至在第一行 jQuery 按钮点击之前就被调用了,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55587432/

相关文章:

javascript - 如何使用不同的样式表来 Bootstrap 3 个不同的 View ?

javascript - 在基于本地文件的应用程序中(文件为 ://)),是否可以使用 AngularJS 进行 HTML5 模式 URL 路由

javascript - HTML:哪个元素/属性存储实体的ID

javascript - AJAX 请求不发送来自同一域的 Cookies 设置

javascript - 如何使填充窗口的元素保持居中?

javascript - 如果从带有数据工具提示和标记中的 HTML 注释的 Knockout 自定义绑定(bind)调用,Foundation Reflow 会导致错误

javascript - 我应该使用/避免 jQuery 动画吗?

javascript - 动态添加/删除 html 元素数组结构

asp.net - ASP Ajax 日历扩展器和显示时间

python - Django Ajax POST 请求 : Internal server error