2016-02-24 79 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; 
}