javascript - 以编程方式禁用 jquery ui 对话框上的按钮,直到 ajax 调用完成?

标签 javascript jquery asp.net-mvc asp.net-mvc-4 jquery-ui-dialog

我正在使用 jquery ui dialog ,其中一个按钮会导致需要几秒钟的 ajax 调用,所以我想在单击按钮后禁用该按钮,直到 ajax 调用返回(然后我将启用它)。

通过谷歌搜索,我看到其他一些人在问这个问题,但答案似乎非常过时和老套(基于非常旧版本的 jquery ui)。所以我希望现在有一种更优雅的方式来做到这一点

如何以编程方式禁用或启用 jquery ui 对话框上的按钮?

最佳答案

我想这就是您要找的:

  • 按下的按钮将被禁用
  • 延迟 promise 将等到 ajax() 调用完成
  • 然后延迟操作将重新启用按钮

::

buttons: {
    "DoAjax": function( e ) {
       //disabling button clicked
       var btnAjax = $(".ui-dialog-buttonpane button:contains('DoAjax')");
       btnAjax.disable(true);

       $.when( $.ajax( "/api/controller/action" ) )
            .then(function( data, textStatus, jqXHR ) {
                 // re-enable pressed button
            btnAjax.disable(false);
            })
      }),
     "Close":

    }

关于javascript - 以编程方式禁用 jquery ui 对话框上的按钮,直到 ajax 调用完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189725/

相关文章:

javascript - 选择具有最小键值的对象的最干净/最有效的方法

javascript - Dojo 可以离线使用吗?还有其他选择吗?

javascript - React 类方法覆盖

javascript - 为什么注册按钮没有注册用户名和密码?

javascript - 使用谷歌地图自动完成时,ng 模型仅在点击后更新输入

javascript - 如何在 ASP.NET MVC 应用程序中进行 AJAX GET 调用

javascript - 当用户未提交表单而离开页面时如何显示警告消息

javascript - 如何在 PHP 中获取 HTML5 Range Slider 的值?

c# - java 相当于 .NET MVC4 + Entity Framework(我的意思是 Grails、Spring MVC 等选项,不确定)

asp.net-mvc - VS2015 没有 TypeScript 模板,不支持 TypeScript