3

以下に示すクラスのフォームが送信された後、関数を呼び出そうとしています。ただし、これは機能していないようです (フォームは送信されますが、送信ボタンはアクティブなままで、読み込み中の画像は表示されません)。

$(document).ready(function() {
    $('.uniForm').submit(function() {
      $('#loadingImage').show();
      $(':submit',this).attr('disabled','disabled');
      return true;
    });
});

以下にいくつかの HTML を示します。

<form class="uniForm" id="formABC">
//...form.... here
</form>

<img src="loadimage.gif" style="display: none;" id="loadingImage">

物事が正しく機能するのを妨げている、これに本質的に問題があると思う人はいますか?

正しく呼び出されていないだけだと感じています。このような HTML を介して自分で呼び出すことはできますか?

<button type="button" class="primaryAction" alt="Submit Form" onclick="$('#formABC').submit();">Submit Form</button>
4

4 に答える 4

5

あなたのコメントに続いて、要素がDOMにロードされる前に、ハンドラー関数のsubmitイベントへのバインディングが行われているようです。form

理想的には、DOM の読み込みが完了した後にのみ、イベント ハンドラーをバインドする必要があります。

例えば:

$(document).ready(function() {
    $('.uniForm').submit(function() {
        ...
    });
});
于 2013-03-12T12:57:28.280 に答える
1

送信入力/ボタンにIDを付けて、これを試してください:

$('#mySubmitButton').click(function(e) {
    e.preventDefault();
    e.stopPropagation();
    $(this).attr('disabled','disabled');
    $('#loadingImage').show(function() {
        $(this.form).submit();
    });

});
于 2013-03-12T12:43:09.680 に答える
0

他のことを試してください:

$('.uniForm input[type=submit]').click(function(){
    $('.uniForm').submit();
    //doStuffafterSubmit
});
于 2013-03-12T12:40:41.037 に答える