4

HTML ドキュメントの onChange イベントがテキスト入力またはテキストエリアで発生するのは、その値が実際に変化した瞬間ではなく、フォーカスが要素を離れたときだけであることに少し驚きました (もちろん、値が変化した場合)。 )。

そのため、それを示す仕様を探していましたが、見つかりません。W3Schools のものを含め、それを説明する何百万ものチュートリアルを見つけることができますが、イベントがいつ発生すると予想されるかを定義する標準を見つけることができません。

HTML5 仕様自体には、イベントの名前が記載されていますが、それについては何も言及されていません: http://www.w3.org/html/wg/drafts/html/master/

この他の仕様「DOM レベル 3 イベント仕様」では、言及さえされていません: http://www.w3.org/TR/DOM-Level-3-Events/

では、それを定義する基準は何ですか?

4

1 に答える 1

3

W3C 4.01 仕様のIntrinsic events セクションで簡単に言及されています。

onchangeイベントは、コントロールが入力フォーカスを失い、その値がフォーカスを得てから変更されたときに発生します」。

また、 MSDNでもう少し広く言及されています。

「このイベントは、値が変更されている間ではなく、コンテンツがコミットされたときに発生します。たとえば、テキスト ボックスでは、このイベントはユーザーが入力している間ではなく、ユーザーがテキスト ボックスを離れて変更をコミットしたときに発生します。さらに、このイベントはonblur、コントロールがフォーカスを失ったときに指定されたコードの前に実行されます。」

最後に、MDNで:

変更されるフォーム要素の種類と、ユーザーが要素を操作する方法に応じて、change イベントは別のタイミングで発生します。

  • 要素が (クリックまたはキーボードを使用して)<input type="radio">および<input type="checkbox">;
  • ユーザーが明示的に変更をコミットした場合 (たとえば<select>、マウス クリックで のドロップダウンから値を選択する、 の日付ピッカーから日付を<input type="date">選択する、 のファイル ピッカーでファイルを選択する<input type="file">など)。
  • 値が変更された後、コミットされていない要素がフォーカスを失った場合 (たとえば、<textarea>またはの値を編集した後<input type="text">)。

別の潜在的に役立つリンク - WhatWg - 仕様 - 変更イベント。

于 2013-06-26T20:15:05.030 に答える