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 相关文章推荐
javascript oop开发滑动(slide)菜单控件
Aug 25 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
Nov 15 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
Feb 22 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
基于socket.io+express实现多房间聊天
Mar 17 Javascript
JavaScript利用HTML DOM进行文档操作的方法
Mar 28 Javascript
require.js+vue开发微信上传图片组件
Oct 27 Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
JS高阶函数原理与用法实例分析
Jan 15 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
php email邮箱正则
2008/10/08 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
动态加载js的几种方法
2006/10/23 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
javascript中Function类型详解
2015/04/28 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python中的逆序遍历实例
2019/12/25 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
Linux文件系统类型
2012/09/16 面试题
业务员岗位职责范本
2015/04/03 职场文书
2015年科协工作总结
2015/05/19 职场文书
公司转让协议书
2016/03/19 职场文书
导游词之张家口
2019/12/13 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android