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 相关文章推荐
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
js 自制滚动条的小例子
Mar 16 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
Aug 09 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
jQuery中closest()函数用法实例
Jan 07 Javascript
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
详解Node.JS模块 process
Aug 31 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 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
用php过滤危险html代码的函数
2008/07/22 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
jQuery 操作XML入门
2008/12/25 Javascript
js 编写规范
2010/03/03 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
Python中的urllib模块使用详解
2015/07/07 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
交通志愿者活动总结
2014/06/27 职场文书
环保志愿者活动总结
2014/06/27 职场文书
先进工作者个人总结
2015/02/15 职场文书
个人政治思想总结
2015/03/05 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书