単一のフォームフィールドがあり、フィールドがいつ変更されたかを検出し、フィールドの新しい値を使用して追加のコードを実行できるようにする必要があります。押されたキーが実際にテキストボックスの値を変更する場合にのみ、コードを実行したいと思います。これが私が思いついた解決策です。
function onkeypress(e) {
var value = this.value;
// do something with
}
function onkeyup(e) {
if ( e.which == 8 || e.keyCode == 46 ) { // delete or backspace keys
this.onkeypress(e);
}
}
ただし、問題は1つだけです。onkeypressは、フィールドの値が更新される前に起動されるため、値を取得すると、前の値が取得されます。キーが値を変更したかどうかをテストする方法を知っている場合は、キーアップのみを使用しますが、一部の文字(矢印キーなど)はフィールドの値に影響を与えません。
何か案は?