我一直在試圖找到防止雙重提交表單的「正確」方法。 SO上有很多相關的帖子,但沒有一個對我來說很重要。下面有兩個問題。最簡單的方法來禁用按鈕提交表單?
這裏是我的形式
<form method="POST">
<input type="text" name="q"/>
<button class="once-only">Send</button>
</form>
這是我第一次禁止雙的提交嘗試:
$(document).ready(function(){
$(".once-only").click(function(){
this.disabled = true;
return true;
});
});
這是建議的方法在這裏:Disable button after post using JS/Jquery。該帖子建議提交元素必須是輸入而不是按鈕,但測試兩者都沒有區別。你可以使用這個小提琴自己嘗試一下:http://jsfiddle.net/uT3hP/
正如你所看到的,這會禁用按鈕,但也會阻止提交表單。在提交元素是按鈕和輸入元素的情況下。
問題1:爲什麼這個click處理程序停止提交表單?
搜索周圍的一些更多的,我覺得這個解決方案(從Why doesn't my form post when I disable the submit button to prevent double clicking?)
if($.data(this, 'clicked')){
return false;
} else{
$.data(this, 'clicked', true);
return true;
}
你可以利用這個使用這個小提琴演奏:http://jsfiddle.net/uT3hP/1/
這並不工作,但...
問題2:這是我們能做的最好的嗎?
我認爲這將是一件基本的事情。方法1不起作用,方法2起作用,但我不喜歡它,並且感覺必須有一個更簡單的方法。
可能重複(http://stackoverflow.com/questions/5691054/disable-submit-button-on-form-submit) – mcastle 2015-06-26 15:43:23