js与jquery实时监听输入框值的oninput与onpropertychange方法
作者:bea
本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法。分享给大家供大家参考。具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监听文本框 value 值的变化,然后匹配相关内容。 初接项目,首先想到的是 JQ 里的 change,但是马上排除此方法,因为 change 是在文本框失去焦点时才会触发。曲线救国一下,想到用 keydown 来解决。其他一切还好,只是当不通过键盘操作,而是通过鼠标来复制粘贴时
本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法。分享给大家供大家参考。具体如下:
最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监听文本框 value 值的变化,然后匹配相关内容。
初接项目,首先想到的是 JQ 里的 change,但是马上排除此方法,因为 change 是在文本框失去焦点时才会触发。曲线救国一下,想到用 keydown 来解决。其他一切还好,只是当不通过键盘操作,而是通过鼠标来复制粘贴时,这个事件是无法触发的。所以这个方法也排除掉了。
然后,查询了一些相关资料,发现只有原生 js 的 oninput & onpropertychange 符合此要求,接着便去 JQ 的 API 里去找符合的方法,很失望,并未找到,但是 bind 确实会绑定类似的事件,那便是 input & propertychange,通过测试,确实是没问题的。
现在将例子奉上:
JQ:
$('input').bind('input propertychange', function() {
//进行相关操作
});
其中:propertychange 是为了兼容 IE9 以下版本的。
JS中的 oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接修改内容两种情况下都会触发,有以下几种情况:
修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。
修改了 input:text 或者 textarea 元素的值,value 属性发生变化。 修改了 select 元素的选中项,selectedIndex 属性发生变化。 JS:
if(isIE)
{
document.getElementById("input").onpropertychange = keys();
}
else //需要用addEventListener来注册事件
{
document.getElementById("input").addEventListener("input", keys, false);
}
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监听文本框 value 值的变化,然后匹配相关内容。
初接项目,首先想到的是 JQ 里的 change,但是马上排除此方法,因为 change 是在文本框失去焦点时才会触发。曲线救国一下,想到用 keydown 来解决。其他一切还好,只是当不通过键盘操作,而是通过鼠标来复制粘贴时,这个事件是无法触发的。所以这个方法也排除掉了。
然后,查询了一些相关资料,发现只有原生 js 的 oninput & onpropertychange 符合此要求,接着便去 JQ 的 API 里去找符合的方法,很失望,并未找到,但是 bind 确实会绑定类似的事件,那便是 input & propertychange,通过测试,确实是没问题的。
现在将例子奉上:
JQ:
$('input').bind('input propertychange', function() {
//进行相关操作
});
其中:propertychange 是为了兼容 IE9 以下版本的。
JS中的 oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接修改内容两种情况下都会触发,有以下几种情况:
修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。
修改了 input:text 或者 textarea 元素的值,value 属性发生变化。 修改了 select 元素的选中项,selectedIndex 属性发生变化。 JS:
if(isIE)
{
document.getElementById("input").onpropertychange = keys();
}
else //需要用addEventListener来注册事件
{
document.getElementById("input").addEventListener("input", keys, false);
}
希望本文所述对大家的javascript程序设计有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jquery实现在光标位置插入内容的方法
- Jquery中offset()和position()的区别分析
- JS实现一个按钮的方法
- JS继承用法实例分析
- Javascript实现Web颜色值转换
- JS表的模拟方法
- JS的数组迭代方法
- js实现照片墙功能实例
- js实现仿百度瀑布流的方法
- JS函数this的用法实例分析
- IE下使用jQuery重置iframe地址时内存泄露问题解决办法
- js关于命名空间的函数实例
- js实现数字每三位加逗号的方法
- javascript实现字符串反转的方法
- Javascript中拼接大量字符串的方法
- jquery操作select方法汇总
- 高性能JavaScript模板引擎实现原理详解
- jquery操作复选框checkbox的方法汇总
- js中hash和ico的关联分析