文实例讲述了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);
}

最新文章

  1. 页面嵌入dom与被嵌入iframe的攻防
  2. mysql join 和left join 对于索引的问题
  3. TSQL 分组集(Grouping Sets)
  4. 在嵌入式开发板中运行程序提示-/bin/sh: ./xx: not found的解决办法
  5. CentoS 下安装gitlab
  6. git vs svn
  7. OrzFAng系列–树 解题报告
  8. 让人眼花缭乱的 RSS 版本0.90、0.91、0.92、0.93、0.94、1.0 和 2.0
  9. CFileDialog 打开文件夹文件 保存文件夹文件
  10. JSP-简单的练习省略显示长字符串
  11. SQL*Plus快速入门
  12. 互联网二次进化—VR全景智慧城市
  13. Web Animations API (JS动画利器)
  14. Cocoapods最全完整使用教程
  15. Mego开发文档 - 处理并发冲突
  16. 20175209 《Java程序设计》第四周学习总结
  17. Python内存管理以及数据类型
  18. php 将16进制数串转换为二进制数据的函数
  19. python math random
  20. Hadoop/HBase Capacity Planning

热门文章

  1. ylbtech-LanguageSamples-Arrays(数组)
  2. javascript http库axios
  3. 在基于or1200处理器的SoC上移植linux
  4. Unity Dynamic Batching
  5. Linux rm 删除指定文件外的其他文件 方法汇总
  6. 安装Drupal7.12+Postgresql9.1(Ubuntu Server 12.04)
  7. mysql 5.6的安装
  8. Hibernate中所有包作用详细讲解
  9. EF中多表公共字段,以及设置EntityBase使所有实体类继承自定义类
  10. nginx php 使用unix socket 还是tcp?