每当输入控件中的文本发生更改时,我都需要立即更新一些内容。但我似乎无法为此找到正确的事件。
onchange 仅在您离开输入框时触发(即标签离开或单击外部)。
onkeypress在进行更改之前触发,并且在任何按键按下时都会触发(例如,光标左右不会导致任何文本更改)
- onkeydown 和 onkeyup 也会在任何键上触发(甚至像 Shift 等,这不会导致任何文本更改)
此外,当用鼠标右键单击 + 从剪贴板粘贴时,这些似乎都不会触发。或者当从 JS 中更改值时(即从其他地方做 input.value = something)。
最小的例子:http: //jsfiddle.net/nggAm/
我应该怎么办?我想我可以解决这个问题的一种方法(嗯,主要是)是将所有事件设置为一个通用事件处理程序,在那里缓存值,并且只在字符串更改时才进行实际更新。但这感觉有点糟糕。这样做的正确方法是什么?