テキストフィールドに入力があった際のイベント処理についてメモします。
function alertValue($this) { $this.nextSibling.innerHTML = $this.value; }
入力のあったthisのすぐとなりの要素にその値を表示する関数です。これを使ってイベントの差を見てみます。
onChange
テキストフィールドに限らずチェックボックスやセレクトメニューなど、あらゆるフォームパーツで「変化が起きた時」に発生するイベント。
<input type="text" onChange="alertValue(this)" />
「変化が起きた時」とありますが、テキストフィールドに関してはフォーカスが外れた時はじめてイベント処理が動きます。
onInput
テキストフィールドに「入力があった時」に発生するイベント。
<input type="text" onInput="alertValue(this)" />
1文字入力ごとにイベントが発生します。
しかしこのonInputはIEで使うことができません。そのため次のonKeyUpで代用できます。
onKeyUp
「押されたキーが持ち上がった時」に発生するイベント。
<input type="text" onKeyUp="alertValue(this)" />
テキストフィールドで使うことで、onInputにかなり近いタイミングのイベント発生になります。