防止对模式保存执行双重操作

Prevent double action on modal save

本文关键字:操作 执行 保存 模式      更新时间:2023-09-26

>我有以下代码

$('#modal').dialog("option", "buttons", {
    Save: SaveMethod,
    Cancel: function() {
        $(this).dialog("close");
    }
});

当我非常快速地多次单击"保存"按钮时(即使我将按钮设置为disabled='disabled'),SaveMethod函数仍然运行多次。在第一个方法调用结束之前,如何防止按钮单击?

SaveMethod范围之外的变量可以跟踪保存的时间。

如果SaveMethod快速完成,您仍然可以多次单击该按钮。 在这种情况下,您可以在对话框关闭事件中设置saving = false,或者saving = false替换为setTimeout(function(){ saving = false; }, 500);以延迟一点,然后再允许再次保存。

$('#modal').dialog("option", "buttons", {
    Save: SaveMethod,
    Cancel: function() {
        $(this).dialog("close");
    }
});
var saving = false;
function SaveMethod(){
  if(saving) return;
  saving = true;
  //save code
  saving = false;
}