2016-02-24 50 views
0

双重作用,我有以下代码防止模态保存

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

当我点击保存按钮多次很快(即使我设置按钮disabled='disabled')的SaveMethod功能仍然运行几次。我怎样才能防止按钮点击,直到第一个方法调用结束?

回答

1

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; 
}