是否有"texbox内容已更改"DOM事件?

Jan*_*ich 9 html events dom

每当我需要编写一段监视输入框的JavaScript时,我通常会做类似的事情:

$("#field").keyup(myHandler).keydown(myHandler).change(myHandler);
Run Code Online (Sandbox Code Playgroud)

它并不完美,但它通常适用于大多数情况,所以我继续前进.我碰巧有一点时间来适当地调查这个问题.可能主要问题是没有捕获通过鼠标进行的编辑(右键单击+粘贴/剪切).而且,这不是我想要的.这捕获了我并不感兴趣的所有光标移动和其他键盘事件.所以问题是:

是否存在可靠的跨浏览器事件,每次输入或文本区域的内容发生更改都会触发该事件?

在简短的搜索过程中,我找到了onpropertychange和DOMAttrModified事件.但除了它们在所有浏览器中都不起作用之外,在编辑输入或文本区域时似乎没有被触发.

Wil*_*del 6

看起来至少最新版本的Internet Explorer,Firefox,Chrome和Safari都支持cutpaste事件,这些事件在文本被剪切或粘贴到给定的输入元素后立即触发.事件由键盘鼠标交互触发.倾听这些事件和其他事件的组合应提供您正在寻找的功能.

$("#foo").bind("keyup keydown change paste cut", handler);
Run Code Online (Sandbox Code Playgroud)

我在Firefox 3.6,Chrome 5.0(开发)和Safari 4的Mac上以及Firefox 3.5和IE8的Windows上测试了这一点.