6

jquery submit を使用してデータを要求する webapplication を作成していますが、最初にフォームを送信した後、フォームを複数回送信したくありません。だから私は提出した後、次の提出が数秒間何もしないことを望みます。

$("#updatestock_form").submit(function(e){

    // requesting my data..


}); 

どうすればこれを達成できますか?

4

4 に答える 4

8

「だから私は、送信後、次の送信が数秒間何もしないことを望んでいます。」

ユーザーの 2 回目以降の送信試行を特定の秒数が経過するまで無視することを意味する場合は、さまざまな方法でそれを行うことができます。最初に頭に浮かんだのは次のとおりです。

var allowSubmit = true;
$("#updatestock_form").submit(function(e){
    if (!allowSubmit) return false;
    allowSubmit = false;
    setTimeout(function(){ allowSubmit = true; }, 5000);

    // your existing submit code here
    // requesting my data..
});

つまり、送信が現在許可されているかどうかを示すフラグがあります。送信イベントで、そのフラグが false の場合は、すぐに戻っfalseて送信イベントをキャンセルします。それ以外の場合 (現在の場合true)、フラグをfalseに設定し、タイムアウトを設定して、たとえば 5 秒後にフラグを元に戻してから、既存の送信コードを続行します。

于 2013-04-11T13:08:21.963 に答える
2
$("#updatestock_form").submit(function(e){
    $(this).unbind("submit")
    $("#submitButton").attr("disabled", "disabled")
});

とてもシンプルです。

于 2013-04-11T13:06:56.547 に答える
0

提出する ajax-request を実行していますか? したがって、いくつかのロック変数を作成し、送信時にvar locked;設定し、ajax 呼び出しが終了したときにリセットします。(成功条件)locked = true;false

于 2013-04-11T13:07:51.993 に答える
0

ボタンの onclick イベントでボタンを無効にする

$("#buttonId").bind('click', function() { $(this).attr("disabled", "disabled"); });

操作が成功した後、無効な属性を削除します

于 2013-04-11T13:09:36.690 に答える