我正在做一個使用jquery提交請求一些數據的web應用程序,但我不想讓人們在第一次提交後多次提交表單。所以我想提交後,下一次提交什麼也沒做幾秒鐘。jQuery表單提交,防止在第一次提交後多次發送
$("#updatestock_form").submit(function(e){
// requesting my data..
});
我該如何做到這一點?
我正在做一個使用jquery提交請求一些數據的web應用程序,但我不想讓人們在第一次提交後多次提交表單。所以我想提交後,下一次提交什麼也沒做幾秒鐘。jQuery表單提交,防止在第一次提交後多次發送
$("#updatestock_form").submit(function(e){
// requesting my data..
});
我該如何做到這一點?
「所以我想要提交後,下一次提交什麼也不做,幾秒鐘。」
如果你的意思是你想要的用戶的第二及後續提交嘗試,直到若干秒就可以做,在許多方面之後被忽略。這是首先想到的:
var allowSubmit = true;
$("#updatestock_form").submit(function(e){
if (!allowSubmit) return false;
allowSubmit = false;
setTimeout(function(){ allowSubmit = true; }, 5000);
// your existing submit code here
// requesting my data..
});
也就是說,有一個標誌,指示是否目前允許提交。在提交事件中,如果該標記爲假,立即返回false
以取消提交事件。否則(如果它當前爲true
)將標誌設置爲false
,設置一個超時,例如5秒後更改標誌,然後繼續使用現有的提交代碼。
謝謝,這就是我一直在尋找! – Edwin 2013-04-11 13:11:35
$("#updatestock_form").submit(function(e){
$(this).unbind("submit")
$("#submitButton").attr("disabled", "disabled")
});
很簡單。
併爲少數第二件事'setTimeout'添加行 – 2013-04-11 13:08:18
其實這不會工作,你只是刪除jQuery的監聽器,並不妨礙'表單'提交 – Uby 2013-04-11 13:10:35
你正在做一個ajax請求提交?因此,創建一些鎖定變量var locked;
,並在提交時將其設置爲locked = true;
,並在ajax調用完成時將其重置爲false
。 (成功條件)
按鈕的onclick事件禁用按鈕
$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); });
和刪除操作成功後開啓屬性
您可以刪除或禁用提交按鈕,或者您可以使用標誌,檢查是否一個形式已經被髮送 – Uby 2013-04-11 13:07:06