问题说明
在含有搜索框的网页中,经常需要及时匹配搜索项,因此需要监听input输入框的变化事件。如果使用 onkeydown、onkeypress、onkeyup 这个几个键盘事件来监测的话,除了监听不了右键的复制、剪贴和粘贴这些操作以外,在输入中文的拼音时同样触发,增加请求数不说还浪费流量。
解决方案
本文结合标准的oninput 和 IE 专属事件 onpropertychange 事件来监听输入框值变化。oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发。
代码实现
$().ready(function(){//页面加载完毕绑定输入框的oninput事件var bind_name='input';if(navigator.userAgent.indexOf("MSIE")!=-1) {bind_name='propertychange';}$('input').on(bind_name, function() {do something...});});
参考链接:/jsref/event-oninput.html