フォームのフィールドを観察し、変更を報告する
これで、フォームの各フィールドで行われた変更を監視するための簡単なユーティリティ (オブザーバー パターンの一部) を作成しました。
var idInt = setInterval(function() {
// each input is a document.getElementById(id)
var len = inputList.lenght;
while(len--) {
//send value to somewhere
someWhere(ininputList[len].value);
}
}, 40)
しかし、私は次のような問題があります:
- マウスで値を変更する場合(カット/ペースト)
- プログラムで値を変更するとき
someWhere(ininputList[len].value);
イベント(onchange、oncut、onpaste、oninput、onkeyup)を要素に追加してsetIntervalloopを回避しようとしても、更新しない値が取得しますが、プログラムで値を変更しようとするとイベントが発生しません。
これは、要素の値の変化を観察するためのより良いアプローチです (入力 [ボタン | テキスト | パスワード | url | 電子メール]、ラジオ、チェックボックス、選択) プログラムによる変更が監視され、インターフェイス ユーザーを介して変更されることを考慮に入れると、
注:私は生のソリューションを探しています.jquery、prototype、jsクラス、またはネイティブjavascriptだけのフレームワークはありません