0

onclick イベントが発生したために onsubmit イベントが発生したかどうかを調べることはできますか? たとえば、<input type="submit" />がクリックされると、onclick イベントが発生し、次に onsubmit イベントが発生します。ただし、フォームが送信されない、つまり onsubmit が発生しない場合があります。

再現手順 (フォームは ajax フォームであり、IE10 でテスト済み):
1) ボタンをクリックしてフォームが送信される、
2) ajax リクエストが終了してフォームが更新される、
3) 5 ミリ秒後にボタンが(ステップ 1 と同じ方法で) もう一度クリックしましたが、今回は onclick が起動されますが、onsubmit は起動されません。ボタンをクリックすると、たとえば、フォームの更新後 500 ミリ秒で、すべて問題ありません


$("form input[type=submit], form input[type=image]").live("click", function (e) { console.log("click"); }
$("form").live("submit", function (e) { console.log("submit"); }
は、onsubmitが発生していないことを確認していました

ありがとうございました

4

1 に答える 1

0

意味がわかりませんが、Firefox では再現できません。.live も使用しないでください。

http://api.jquery.com/live/

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。

$(document).ready(function(){
    $("#form").delegate(null,"submit", function(){
        console.log("submitting");
        return false;
    });
    $("#submit").click();
    $("#submit").click();
    $("#submit").click();
    $("#submit").click();
});


<form id="form">
    <input type="submit" id="submit"></input>
</form>
于 2013-02-03T12:59:40.670 に答える