2

ダブルクリックを防ぐために、クリックするとすぐにボタンを無効にしようとしています。次の Javascript がその役割を果たします。

$(document).ready(function () {
    $("#<%=cmTest.ClientID %>").click(function () {
        $(this).attr("disabled", "disabled");
    });
});

これが私のボタンです:

<asp:Button ID="cmTest" Text="Test" runat="server" />

これが私のVBです:

Private Sub cmTest_Click(sender As Object, e As System.EventArgs) Handles cmTest.Click

    Threading.Thread.Sleep(5000)

End Sub

jQuery .click イベントがボタンに割り当てられるたびに、クライアント側の機能は動作しますが、サーバー側のイベントは実行されません。jQuery を削除すると、サーバー側のイベントが実行されます。onclick=javascript:DisableButton();return false;ボタン自体に割り当てたようなものです。サーバー側のイベントをトリガーできるようにしながら、その Javascript をボタンに割り当てる方法はありますか?

編集:ページはまだポストバックされるため、ボタンへの割り当てとはまったく異なります。return false;実際return false;に実行すると、ここで起こっていることではないボタンの送信がキャンセルされます。

4

4 に答える 4

0

フォーム要素に以下を追加します

onsubmit="$(':submit').attr('disabled', 'true');"

複数の送信ボタンがある場合は、それをより明確にする必要があります。

于 2012-07-20T13:12:08.883 に答える
0

無効化されたフォーム要素は投稿に含まれません。

その結果、イベントはリクエストとして送信される前に要素を無効にし、ASP.Net から隠します。

于 2012-07-20T13:16:17.160 に答える
0

ボタンを無効にしたため、実行されません。無効にする代わりに、おそらくボタンのルック アンド フィールを変更 (別の CSS を適用) して、ユーザーがボタンが無効になっていると感じるようにする必要があります。ボタンクリックイベントの最初の行として、セッション変数を何らかの値に設定します。そして、それがすでに設定されているかどうかを毎回チェックし、コードを実行しないでください。したがって、二重提出を防ぎます。

于 2012-07-20T13:16:50.377 に答える
0

可視性を false に設定することもできます。ボタンを無効にするのとまったく同じではありませんが、機能があり、無効になっているボタンをクリックできないという問題には遭遇しません。

読み込み中の画像に置き換えることもできます。

于 2012-07-20T13:38:11.133 に答える