5

我在 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>
4

3 回答 3

11

阻止按钮的默认行为:

<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>
于 2013-01-17T08:09:27.747 回答
4

假设它#btn_approve实际上是一个内部的提交按钮#my_form,您正在通过触发表单提交,.submit并且浏览器也在正常提交它。改成:

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

   e.preventDefault();
});
于 2013-01-17T07:09:14.553 回答
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")
于 2013-10-02T14:58:53.217 回答