在 Web 开发中有时候我们会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown、onkeypress、onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制、剪贴和粘贴这些操作,处理组合快捷键也很麻烦。因此在这篇文章向大家介绍一种完美的解决方案:结合 HTML5 标准事件 oninput 和 IE 专属事件 onpropertychange 事件来监听输入框值变化。
- oninputoninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发。oninput 事件在主流浏览器的兼容情况如下:从上面的列表我们看到,oninput事件在大部分浏览器上都支持,只有在IE9之前不支持,那么怎么处理这些不支持的浏览器呢?
- onpropertychange针对不支持oninput的IE浏览器,我们利用事件onpropertychange来检测输入值变化。在监听到 onpropertychange 事件后,可以使用 event 的 propertyName 属性来获取发生变化的属性名称。
最后,贴上完整实现实时输入检测的代码
转载自