5

IE でこの問題が発生し、フォームが 2 回送信されることがあります。ボタンを 2 回クリックする問題は知っていますが、それは問題ではありません。しかし、私の場合、一度だけクリックします。データベースで自分のレコードを確認したところ、2 つのレコードがありました。

<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 に答える