输入框值改变时ie下可以用propertychange事件,其它浏览器都会触发input。
- oninput事件:a). 当脚本中改变value时,不会触发; b). 从浏览器的自动下拉提示中选取时,不会触发。
- onpropertychange事件:当input设置为disable=true后,onpropertychange不会触发。
IE 有一个 onpropertychange 事件处理器可以随时检测变化,对应之,Firefox 和 Opera 有一个 oninput 事件处理器也可以达到目的。遗憾的是,在输入法开启的情况下,Opera 对于 oninput 也没法随时监听(表现在:输入英文字母可以监听到,而中文则失效)。
另外需要注意的是, oninput 比较诡异,您可以<input οninput="jsFunc()" ... />来绑定,也可以用addEventListener来绑定,就是不能使用 DOM 0 的element.oninput = function(){} 的形式来绑定,否则不生效。