Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 侦听输入值的删除_Javascript_Jquery_Events_Input_Listener - Fatal编程技术网

Javascript 侦听输入值的删除

Javascript 侦听输入值的删除,javascript,jquery,events,input,listener,Javascript,Jquery,Events,Input,Listener,侦听输入文本字段的更改的最推荐方法之一是将该字段绑定到一个向上键事件。这在大多数情况下都很有效。但在某些情况下,这是行不通的。例如,在Firefox中,当文本已经被选中时,可以使用上下文菜单删除它。而且这不会触发一个按键事件。我没有发现在执行此操作时为该文本字段触发的任何事件。 (在纯Javascript或jQuery中)有什么建议我可以对此做出反应吗?请参阅oninput事件,以及我对此的评论 oninput激发所有形式的文本输入,包括剪切、粘贴、撤消、重做、清除、拖放和拼写更正。这是一个HT

侦听输入文本字段的更改的最推荐方法之一是将该字段绑定到一个向上键事件。这在大多数情况下都很有效。但在某些情况下,这是行不通的。例如,在Firefox中,当文本已经被选中时,可以使用上下文菜单删除它。而且这不会触发一个按键事件。我没有发现在执行此操作时为该文本字段触发的任何事件。
(在纯Javascript或jQuery中)有什么建议我可以对此做出反应吗?

请参阅
oninput
事件,以及我对此的评论

oninput
激发所有形式的文本输入,包括剪切、粘贴、撤消、重做、清除、拖放和拼写更正。这是一个HTML5事件,在InternetExplorer8和更低版本中不受支持(但在最新的IE9预览版中)。但是,Internet Explorer支持所有DOM对象上的专有事件-
onpropertychange
。只要输入元素的值发生更改,就会触发该命令


我没有注意到您标记了-既然您标记了,可能值得一提的是,我编写了一个插件来实现
oninput
跨浏览器事件。您可以找到它。

最好的方法是将值存储在
焦点事件上,然后重新检查
模糊事件上的值。监听关键事件会触发很多通常是冗余的进程。大多数情况下,只有当用户输入(或删除)字段值时,才会对其进行查询

这可以跨浏览器使用,但在某些浏览器中,委派焦点/模糊可能是一个问题。最简单的方法是直接将模糊/聚焦侦听器应用于元素


唯一的例外是像autosuggest/complete这样的实现,即使这样,您也可能希望取消键输入的抖动,这样它只在用户空闲几百毫秒时才会触发。

我想您已经解决了这个问题。@Tim:哈哈,我当然在尝试:-)@Tim:除了他在博客文章中提到的bug之外,是的。@TJC即使有这些bug,
oninput
仍优于关键事件。昨天我注意到Opera11Alpha解决了这些问题。Andy,你的实现有一个问题(至少在Linux下的Firefox3.6.12)。将输入绑定到输入事件的站点最初会自动滚动到末尾。是的,我知道。。。听起来很奇怪,但我在几种情况下检查了多次。我还试着调试它。它发生在jQuery内部的某个地方,在输入绑定被附加后不久。。。在初始化期间。