2

送信入力のあるフォームがあり、ボタンがクリックされたときに、スクリプトがいくつかの Ajax アクションを実行する必要があります。また、Ajax リクエスト中にそのボタンを無効にする必要があります。したがって、入力がクリックされたときに実際のフォーム送信を回避するには、jQuery コマンドが必要です。私はこれを使用しようとしました:

$('input.searchplease').click(function () {
    $(this).attr('disabled', 'disabled');

    alert('Yep');
    //Do Ajax
});

これはうまくいきませんでした。つまり、アラートは正しく表示されますが、フォームは送信されます。それで、あなたの提案は何ですか?

4

5 に答える 5

7

これを試して:

$('input.searchplease').click(function (e) {
   $(this).attr('disabled', 'disabled');

   alert('Yep');
   //Do Ajax

   e.preventDefault();
});
于 2012-04-17T12:09:49.217 に答える
1
$('input.searchplease').click(function () {
    alert('yep');
    return false;
});

これはうまくいくはずです

于 2012-04-17T12:10:09.217 に答える
0

これでうまくいくと思います:

$('form').submit(function(event) {
    event.preventDefault();
    $('#submit-button-ID').attr('disabled', 'disabled');
    $.ajax({
        ...,
        success: function() {
                $('#submit-button-ID').removeAttr('disabled');
              }
    });
});
于 2012-04-17T12:33:31.113 に答える
0

あなたはこれを行うことができます:

$('form').submit(function(){
    ... ajax things

    return false;
});

必要がない限り、ボタンを無効にしたり、有効にしたりしたくありません。

于 2012-04-17T12:10:02.937 に答える
0

この方法を試してください:

$("#id-of-your-form").submit(function() {

    $("#id-of-your-submit-input").attr("disabled", true);

    // do-ajax
    // you can use jquery's ajax complete handler to enable the submit button again

    return false;
});
于 2012-04-17T12:16:29.390 に答える