我有以下代碼,我用它來提交鏈接(而不是按鈕)的表單。這是爲了讓我們可以做一些CSS懸停的東西。Jquery - Internet Explorer提交表單兩次
$('a.css_submit').click(submit_form);
$('a.inactive_submit').click(submit_form);
function submit_form(event) {
if ($(this).parents('form:first').length > 0 && !$(this).hasClass('inactive_submit')) {
$(this).toggleClass("css_submit inactive_submit");
$(this).parents('form:first').submit();
return false;
} else {
return true;
}
}
問題是Internet Explorer偶爾會提交表單兩次。我自己無法複製該問題,但可以在生產服務器日誌中驗證它。這個問題在IE6 - IE9中仍然存在。所有其他瀏覽器正常工作。我看到一些帖子說,從鏈接返回false,但我這樣做。
任何幫助表示讚賞。
也許用戶點擊提交兩次真的很快。嘗試在第一次點擊後禁用鏈接。 –
如果使用event.preventDefault()作爲submit_form的第一行,它會執行相同的操作嗎? (而不是返回false;) –
+1 @ilia往往是這樣。普通人羣用於雙擊Windows圖標,因此他們傾向於雙擊_everything_。我幾年前編寫了一個在線支付系統,爲了防止雙重提交,我們禁用了onclick提交按鈕(除了服務器端驗證)。 –