2013-01-17 34 views
4

我在IE中有這個問題,有時我的表單提交兩次。我知道點擊按鈕兩次的問題,這不是問題。但在我的情況下,我只點擊一次。我在數據庫中檢查了我的記錄,並且有兩條記錄。IE提交表格兩次

<input type="button" value="Approve" name="btn_approve" id="btn_approve"> 
<input type="button" value="Reject" name="btn_reject" id="btn_reject"> 

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.20.custom.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("#btn_approve").click(function() { 
     // some validation before submitting the form 

     $("#my_form").submit(); 
    }); 
}); 
</script> 

回答

3

假設#btn_approve實際上是內部的#my_form一個提交按鈕,您通過.submit觸發表單提交和瀏覽器也提交它正常。更改爲:

$("#btn_approve").on('click', function (e) { 
    $("#my_form").trigger('submit'); 

    e.preventDefault(); 
}); 
+0

在問題上顯示的代碼中,'btn_approve'的類型是'button'。 –

+0

@MartínCanaval1.你怎麼知道的2.爲什麼這很重要? –

+0

''這是他發佈的代碼的第一行。我只是爲了以防萬一。 –

10

防止按鈕的默認行爲:

<input type="button" value="Approve" name="btn_approve" id="btn_approve"> 
<input type="button" value="Reject" name="btn_reject" id="btn_reject"> 

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.20.custom.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("#btn_approve").click(function (e) { 
     e.preventDefault(); 
     // some validation before submitting the form 

     $("#my_form").submit(); 
    }); 
}); 
</script> 
+0

是的,這是正確的。 e.preventDefault();應該在submit()之前先執行。謝謝! – Paengski

+0

我剛纔也有一個自創的css按鈕(幾個div放在一起)。我不知道爲什麼,但是這也爲我解決了這個問題。 – dreagan

0

我有同樣的問題。 我將記錄保存到數據庫時記錄了我的記錄。 因此,如果一個記錄是針對特定的唯一用戶提交的,在2秒內彼此不同,我只是忽略重複。 這樣我就不需要在客戶端檢查瀏覽器類型和兼容性,只需分別在瀏覽器的服務器端處理問題。

 '' Count the number of submissions, for the user, within the 2 seconds. 
     objRS.open "select count(*) as C FROM [ADS].[dbo].[VIP_USERS] where userid = '" & Trim(Request("USERID")) & "' and datediff(ss, created, GETDATE()) <= 2", Application("sConn")