Javascript 救命!?IE9:onChange事件不';当值被onkeydown脚本和用户选项卡修改时,不会触发

Javascript 救命!?IE9:onChange事件不';当值被onkeydown脚本和用户选项卡修改时,不会触发,javascript,html,internet-explorer,events,dom,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');" /> 在本例中,on

我们在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。 在IE9中,当您按tab键时,onchange不会启动,但当您通过鼠标单击表单上的某个位置离开文本框时,onchange会启动


那么,当鼠标点击文本框而不是按tab键时,为什么onchange事件会触发?

onchange事件存在IE9的一个错误,因此您可以在输入上添加onpropertychange事件(绑定两个事件):



这只是一个解决方法,希望能有所帮助。

似乎有效:不,它不起作用:您更新的是范围文本,而不是文本框值。这看起来有点奇怪,但它确实代表了我的问题。这不是一个真正的解决方案,但我会接受你的答案。看来你是对的,这是一个错误,我需要一个这样的解决办法。
<input type="text" onKeyDown="this.value=this.value;" onChange="alert('test');" onpropertychange="alert('change');" />