1

ajax 関数が完了するまで送信ボタンを無効にしようとしています。

現時点では、ユーザーが入力している特定の時間だけボタンを無効にする方法しかわかりません。

ajaxデータが読み込まれるまで送信ボタンを無効にするにはどうすればよいですか? ありがとうございました。

<script>

    $('#comment_comment').keyup(function() {
      $("#new_comment_button").attr("disabled", true);
      setTimeout(function() { $("#new_comment_button").removeAttr("disabled"); }, 2000);
    });

    $('#comment_comment').preview({ key:'my key', 
      selector : {type:'rich'},
      preview : {
        submit : function(e, data){
          $.ajax({
            dataType: 'script',
            url: this.form.attr('action'),
            type: 'POST',
            data: data
          });
        },
      },
      autoplay : 0,
      maxwidth : 350,
      display : {display : 'rich'}
    });

</script>
4

1 に答える 1

1

単純な JS で AJAX を開始するときにボタンを無効にし、AJAX リクエストが終了するとボタンを有効にします。

こんなものでしょう

$.ajax({...
   success: function(){
     submitButton.enable(); // Pseudo-code
   },
   ...
 });

AJAX リクエストを使用して、いくつかのことを実行できます。詳細については、この投稿を参照してください

編集:二重送信リクエストを防ぎたい場合は、それを行う方法がありますが、思い出せません:/そしてGoogleで見つけられませんでした。 これはそれを行う方法ですが、私はそれが好きではありません

于 2013-01-15T06:39:40.960 に答える