js与jquery实时监听输入框值变化方法
2024-09-25 02:10:22
本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法。分享给大家供大家参考。具体如下:
最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时监听文本框 value 值的变化,然后匹配相关内容。
初接项目,首先想到的是 JQ 里的 change,但是马上排除此方法,因为 change 是在文本框失去焦点时才会触发。曲线救国一下,想到用 keydown 来解决。其他一切还好,只是当不通过键盘操作,而是通过鼠标来复制粘贴时,这个事件是无法触发的。所以这个方法也排除掉了。
然后,查询了一些相关资料,发现只有原生 js 的 oninput & onpropertychange 符合此要求,接着便去 JQ 的 API 里去找符合的方法,很失望,并未找到,但是 bind 确实会绑定类似的事件,那便是 input & propertychange,通过测试,确实是没问题的。
现在将例子奉上:
JQ:
1
2
3
|
$( 'input' ).bind( 'input propertychange' , function () { //进行相关操作 }); |
其中:propertychange 是为了兼容 IE9 以下版本的。
JS中的 oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接修改内容两种情况下都会触发,有以下几种情况:
修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。
修改了 input:text 或者 textarea 元素的值,value 属性发生变化。
修改了 select 元素的选中项,selectedIndex 属性发生变化。
JS:
1
2
3
4
5
6
7
8
|
if (isIE) { document.getElementById( "input" ).onpropertychange = keys(); } else //需要用addEventListener来注册事件 { document.getElementById( "input" ).addEventListener( "input" , keys, false ); } |
最新文章
- DOM的概念(1)
- js取整函数
- apache maven pom setting
- 配置Supervisor开机启动
- 一定要学会paxos算法!
- zabbix3.0.4 部署之三 (LNMP >; Mysql 安装)
- HTML5中的Range对象的研究
- 【MyBatis】 通过包含的jdbcType类型
- hdu 2767
- C++編程札記「基礎」
- Objective-C路成魔【18-复制对象】
- Go的变量作用域
- /sbin/nologin 和 /bin/false 的区别
- 利用Selenium+PhantomJS 实现截图
- SQLserver提示事务日志已满无法重建索引,前台提示日志已满处理方案
- 导出mysql数据库数据
- Bagging和Boosting的区别
- rpcbind.service启动失败
- yolo2详解
- Java 常用对象-Date类和Calender类