1

フォームを送信するボタンがあります

ボタンはすでにページにあります。

したがって、送信を防止したい場合は、次のことができます。

$(".myBtn").on('click',function (e){ e.preventDefault();.....});

しかし、ボタンが将来注入されようとしている場合は、次のことができます。

$("body").on('click',".myBtn",function (e){ e.preventDefault();.....});

しかし、それは機能しておらず、フォームが送信されます。

ハンドラーが要素自体ではなく、デリゲート ターゲットに直接アタッチされている場合、どうすれば目標を達成できますか?

4

1 に答える 1

1

フォームの送信を防ぐために、クリック ハンドラーを送信ボタンにアタッチしないでください。常にフォームの「送信」イベントをバインドします。ユーザーがフォームをクリックする代わりに Enter キーを押してフォームを送信するとどうなりますか?

$(document).on('submit','#your-form',function(e) {
 e.preventDefault();
});

直接の質問への回答に関しては、コードは正常に動作するはずです。ボタンに適切なクラス名が付いていることを確認し、ボタンをクリックする前または後にページで JS エラーが発生しないようにしてください。これにより、e.preventDefault() が無視される可能性があります。

于 2013-03-12T14:05:19.090 に答える