我正在使用 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/