本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法。分享给你们供你们参考。具体以下:javascript
最近作过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监听文本框 value 值的变化,而后匹配相关内容。java
初接项目,首先想到的是 JQ 里的 change,可是立刻排除此方法,由于 change 是在文本框失去焦点时才会触发。曲线救国一下,想到用 keydown 来解决。其余一切还好,只是当不经过键盘操做,而是经过鼠标来复制粘贴时,这个事件是没法触发的。因此这个方法也排除掉了。jquery
而后,查询了一些相关资料,发现只有原生 js 的 oninput & onpropertychange 符合此要求,接着便去 JQ 的 API 里去找符合的方法,很失望,并未找到,可是 bind 确实会绑定相似的事件,那即是 input & propertychange,经过测试,确实是没问题的。测试
如今将例子奉上:设计
$('input').bind('input propertychange', function() { //进行相关操做 });
其中:propertychange 是为了兼容 IE9 如下版本的。code
JS中的 oninput 事件在 IE9 如下版本不支持,须要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接修改内容两种状况下都会触发,有如下几种状况:事件
修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。ip
修改了 input:text 或者 textarea 元素的值,value 属性发生变化。
修改了 select 元素的选中项,selectedIndex 属性发生变化。
JS:get
if(isIE) { document.getElementById("input").onpropertychange = keys(); } else //须要用addEventListener来注册事件 { document.getElementById("input").addEventListener("input", keys, false); }
但愿本文所述对你们的javascript程序设计有所帮助。input