js与jquery实时监听输入框值的oninput与onpropertychange方法


Posted in Javascript onFebruary 05, 2015

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
Json和Jsonp理论实例代码详解
Nov 15 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
JS实现模糊查询带下拉匹配效果
Jun 21 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 #Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 #Javascript
Javascript数组操作函数总结
Feb 05 #Javascript
Javascript毫秒数用法实例
Feb 05 #Javascript
封装了jQuery的Ajax请求全局配置
Feb 05 #Javascript
node.js集成百度UE编辑器
Feb 05 #Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 #Javascript
You might like
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php事务处理实例详解
2014/07/11 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
django 类视图的使用方法详解
2019/07/24 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
python集合能干吗
2020/07/19 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
高中数学教师求职信
2013/10/30 职场文书
会计实习自我鉴定
2013/12/04 职场文书
大学生军训感想
2014/02/16 职场文书
集体婚礼策划方案
2014/02/22 职场文书
教师节老师寄语
2015/05/28 职场文书
暑假打工感想
2015/08/07 职场文书
python实现手机推送 代码也就10行左右
2022/04/12 Python
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android