【发布时间】:2011-01-20 13:44:22
【问题描述】:
每次我需要编写一段监控输入框的 JavaScript 时,我通常会做如下的事情:
$("#field").keyup(myHandler).keydown(myHandler).change(myHandler);
它并不完美,但它通常在大多数情况下都有效,所以我继续前进。我只是碰巧有一点时间来适当地调查一下。可能主要问题是没有捕捉通过鼠标完成的编辑(右键单击+粘贴/剪切)。而且,这并不是我真正想要的。这会捕获我不真正感兴趣的所有光标移动和其他键盘事件。所以问题是:
是否有一个可靠的跨浏览器事件,每次在输入或文本区域的内容发生变化后触发?
在简短的搜索中,我找到了onpropertychange 和 DOMAttrModified 事件。但除了它们不能在所有浏览器中工作之外,它们似乎在编辑输入或文本区域时不会被触发。
【问题讨论】:
-
也许是个愚蠢的问题,但为什么
onchange不是这里的选项?是不是开得太早了? -
触发太晚了;它仅在文本框离开时触发。