2015-07-20 69 views
1

我有一個按鈕或錨點元素,將用戶重定向到不同的視圖。一旦按鈕被點擊,它會觸發數據庫寫入事件。但是,當用戶多次單擊該按鈕等待頁面重新加載時,會創建多個記錄,並且會導致應用程序保存隨後的表單。JavaScript解決方案忽略點擊進行第一次點擊?

什麼是最好的方法,也許在JavaScript或jQuery忽略第一個之後的點擊?

UPDATE:

其實我做這個和它的工作 - 它不會禁用按鈕,但在上點擊事件返回false。

<script> 
    $("#linkresponse").click(function() { 
    $(this).click(function() { 
     return false; 
    }); 
     return true; 
    }); 
</script> 

這似乎是一個很好的解決方案,任何理由我不應該遵循它?

+0

前端顯示加載程序顯示用戶將知道進程正在後臺進行。或者,您可以禁用按鈕點擊一次(不推薦)。檢查了這一點http://stackoverflow.com/questions/1964839/jquery-please-wait-loading-animation?answertab=active#tab-top –

回答

4

每當一個事件應爲元素僅出現一次,使用jQuery的one()方法:

$('#myButton').one('click', function(){ 
    ... 
}); 
0

創建一個全局變量(稱之爲hasClicked或其他)設置爲'false'。在你的onclick方法,有這樣的邏輯,在最高層:

if (hasClicked) 
    return; 
else 
    hasClicked = true; 
0

其實我加入這個腳本。它不會禁用按鈕,但每次後續點擊都會返回false。它現在有效!謝謝你的建議。

<script> 
    $("#buttonid").click(function() { 
    $(this).click(function() { 
     return false; 
    }); 
     return true; 
    }); 
</script> 
相關問題