我有一个表单字段,我需要能够检测字段何时更改并使用该字段的新值执行一些额外的代码。如果按下的键实际上改变了文本框的值,我只想执行代码。这是我想出的解决方案。
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);
}
}
不过只有一个问题。onkeypress 在字段值更新之前被触发,所以当我获取值时,我得到了以前的值。如果我知道一种方法来测试键是否更改了值,我会专门使用 keyup,但是某些字符(如箭头键)对字段的值没有影响。
有任何想法吗?