zoukankan      html  css  js  c++  java
  • js与jquery实时监听输入框值变化方法

    本文实例讲述了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);
    }
  • 相关阅读:
    BI的相关技术和产品细分(转自娄工)
    SOA系列二:采用SOA的常见失误
    ASP.NET第三方控件网站
    BI名词字典
    VSS2005 添加文件夹方法!
    c#范型编程系列一(非原创)
    数据挖掘项目的生命周期
    SQLServer 2005开发与商业智能培训大纲
    CVSNT配置配置与在ECLIPSE中使用
    JS通用UI框架
  • 原文地址:https://www.cnblogs.com/zhengyan/p/5313476.html
Copyright © 2011-2022 走看看