javascript - 帮助!? IE9 : onChange event doesn't fire when value is modified by an onkeydown script and user tabs away

标签 javascript html internet-explorer events dom

我们在 asp.net 中有一个自定义数字文本框。在 oninput 事件中,检查输入是否存在无效字符,并设置文本框的值。处理 OnChange 事件以在用户离开文本框后执行一些操作。这适用于 firefox、chrome 和 IE8。

在 IE9 中,在上一个事件中设置文本后,onchange 事件不再触发。 简而言之,这是问题:

<input type="text" onKeyDown="this.value=this.value;" onChange="alert('test');" />

在此示例中,onChange 事件不会在 IE9 中触发。 使用什么类型的事件并不重要,OnKeyDown、OnInput、OnPropertyChange 或其他。当您将 OnKeyDown 更改为“”时,OnChange 将触发。

知道为什么这在 IE9 中不再起作用,以及如何解决这个问题?谢谢!

更新:我测试了当我使用 TAB 键离开文本框时 'onChange' 是否触发。 当您按下 Tab 键时,onchange 在 IE9 中不会触发,但当您通过在表单上的某处单击鼠标离开文本框时,它会触发。

那么为什么 onchange 事件在鼠标点击离开文本框时触发,而不是通过按 tab 键?

最佳答案

IE9 有一个关于 onchange 事件的错误,因此也许你可以在输入上添加 onpropertychange 事件(绑定(bind)两个事件):

<input type="text" onKeyDown="this.value=this.value;" onChange="alert('test');" onpropertychange="alert('change');" />

这只是一种解决方法,希望对您有所帮助。

关于javascript - 帮助!? IE9 : onChange event doesn't fire when value is modified by an onkeydown script and user tabs away,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5510907/

相关文章:

jquery - form.submit() 与 JQuery 返回字符编码错误消息

css - 容器 div 上水平放置多个 div

internet-explorer - 如何从 Powershell 访问 Internet Explorer 运行实例的经典 Internet Explorer COM 自动化对象?

javascript - 使用es6 map根据属性值更新对象数组

javascript - 如何提供 ECMAScript 5 (ES 5)-shim?

javascript - 如何从异步调用中填充 ng-table 上的选择过滤器

javascript - 如何从 C# 代码中的本地存储中检索值?

html - 我怎样才能让一个图像作为一个按钮,并让它在点击时执行一个 Action (启动一个关键帧事件,运行一个脚本)?

Delphi XE4 TWebBrowser - 以编程方式为 IE 安装自签名证书

internet-explorer - IE 未发送 HTTP header 'Connection: Close'