实时监听输入框

平时WEB开发中经常会碰到需要动态监听输入框值变化的情况:

  首先想到:onchange、onkeydown、onkeypress、onkeyup;

  不过:

    onchange:在元素失去焦点时触发(支持<select>);

    onkeydown、onkeypress、onkeyup:可以监听输入变化,监听不了右键的复制、剪贴和粘贴这些操作;

  所以使用:

  oninput 和 onpropertychange

  oninput:(支持<input type="password">, <input type="search">, <input type="text"> 和 <textarea>)

     触发情况:在元素value发生变化是立即触发(select也属于value改变);

     不会触发:a). 使用JS改变value时;

          b).修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化;

       特殊情况:修改了 select 元素的选中项(IE不会触发,chrome会触发);

  浏览器支持

   正因为oninput事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代:

  onpropertychange:

     触发情况:a).修改了 input:checkbox 或者 input:radio 元素的选择中状态, checked 属性发生变化。

          b).修改了 input:text 或者 textarea 元素的值,value 属性发生变化。

          c).修改了 select 元素的选中项,selectedIndex 属性发生变化。

     不会触发:当input设置为disabled=disabled;

<body>
    <input type="text" oninput="OnInput (event)" />
    <input type="text" onpropertychange="OnPropChanged(event)" disabled id="i1"/>
    <input type="checkbox" oninput="OnInput (event)" />
    <input type="checkbox" onpropertychange="OnPropChanged(event)"/>
    <select oninput="OnInput (event)">
        <option value="">1</option>
        <option value="">2</option>
        <option value="">3</option>
        <option value="">4</option>
        <option value="">5</option>
    </select>
    <select onpropertychange="OnPropChanged(event)">
        <option value="">1</option>
        <option value="">2</option>
        <option value="">3</option>
        <option value="">4</option>
        <option value="">5</option>
    </select>
</body>
<script>
        i1.value=‘111‘;
        function OnInput (event) {
            console.log(‘oninput‘)
        }
        // IE
        function OnPropChanged (event) {
            console.log(‘onpropertychange‘)
        }
</script>
时间: 2024-10-12 20:40:14

实时监听输入框的相关文章

移动端用js与jquery实时监听输入框值的改动

背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android和iOS都可以触发的keyDown和keyUp. 于是,百度出了新东西:oninput![需要配合propertychange,兼容 IE9 以下版本] 用法: JS: if(isIE) { document.getElementById("input").onpropertychange

js/jquery 实时监听输入框值变化的完美方案:oninput &amp; onpropertychange

本文转载于 http://blog.163.com/lgh_2002/blog/static/44017526201341511112874/ Jquery绑定事件(bind和live的区别) js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange 2013-05-15 11:01:12|  分类: jquery/javascrip |

oninput和onpropertychange实时监听输入框值的变化

传统监听输入框的做法就是使用keyup.keydown.keypress,或者change事件来实现,但keyup.keydown.keypress事件是只要完成击键事件后就触发,不考虑输入框的值是否变化,也监听不了使用鼠标右键[剪贴]和[粘贴]这些操作,更监听不了使用JS动态改变值的变化.而change事件必须是焦点离开输入框后才触发,并不能实时监听.所以这几个事件来监听输入框值变化并不完美.ie浏览器(ie6-8)可以直接使用onpropertychange事件来实时监听(包括JS动态改变值

js/jquery 实时监听输入框值变化的完美方案

js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange 解释:先说jquery, 使用 jQuery 库的话,只需要同时绑定 oninput 和 onpropertychange 两个事件就可以了,示例代码:$('#username').bind('input propertychange', function() { $('#content').html($(this).val().length + ' characters');});

jquery实时监听输入框值变化

在做web开发时候很多时候都需要即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感.而采用onchange时间又往往是在输入框失去焦点(onblur)时候触发,有时候并不能满足条件. 首先看一下dom中元素事件: onpropertychange: IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获.onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件. 在用js脚本改动该元素值时候亦能触发o

关于实时监听输入框的值变化

实时监听文本框值变化是非常常见的功能,通常最简单的办法就是用keyup,keydown来实现,但是这种方法有两个问题,一个是当直接复制粘贴的时候没法监听到事件,另外一个问题是在移动端,使用删除键删除输入时候也无法监听到! 解决办法: 1.使用onchange事件 onchange事件是文本框内容改变并失去焦点的时候才触发. 2.比较完美的解决办法:oninput和onproper oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:pas

javascript --- 实时监听输入框值的变化

实时监听文本框值变化是非常常见的功能,通常最简单的办法就是用keyup,keydown来实现,但是这种方法有两个问题,一个是当直接复制粘贴的时候没法监听到事件,另外一个问题是在移动端,使用删除键删除输入时候也无法监听到! 解决办法: 1.使用onchange事件 onchange事件是文本框内容改变并失去焦点的时候才触发. 2.比较完美的解决办法:oninput和onproper oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:pas

实时监听输入框值变化

判断ie678 //是否是IE678 isIE678: function () { return !+'\v1'; }, 监听输入框变化 if(util.isIE678()){ //ie678下的实时搜索 var enameSearch = document.getElementById("chooseUser"); var oRealSearch = enameSearch.getElementsByTagName("input")[1]; oRealSearch

实时监听输入框值变化的完美方案:oninput &amp; onpropertychange

oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发.oninput 事件在主流浏览器的兼容情况如下: 从上面表格可以看出,oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接

实时监听输入框值变化:oninput &amp; onpropertychange

在 Web 开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理组合快捷键也很麻烦.因此这篇文章向大家介绍一种完美的解决方案:结合 HTML5 标准事件 oninput 和 IE 专属事件 onpropertychange 事件来监听输入框值变化. oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:pa