次のHTMLがあるとします。
<form>
<input type="number" required>
</form>
次のJavaScriptは正常に機能します。
(function( jQuery ) {
jQuery("input").bind("invalid", function(event) {
console.log(event.type);
});
})( jQuery );
しかし、このjavascriptコードは次のことを行いません。
(function( jQuery ) {
jQuery("form").on("invalid", "input", function(event) {
console.log(event.type);
});
})( jQuery );
なぜ誰かが何か考えを持っていますか?
編集:フィドルを更新して修正しました: http://jsfiddle.net/PEpRM/1
無効なイベントはバブルしません。 documentation にそのように表示されます。したがって、イベントがバブルしないため、委任されたイベントハンドラーは機能しません。
これはうまくいくはずです
jQuery("form input").on("invalid", function(event) {
console.log(event.type);
});