使用 onpropertychange 和 oninput 检测 input、textarea输入改变

检测input、textarea输入改变事件有以下几种:

1、onkeyup/onkeydown 捕获用户键盘输入事件。

  缺陷:复制粘贴时无法检测

2、onchenge

  缺陷:要满足触发条件:当前对象的属性改变(由键盘或鼠标触发)且对象失去焦点

3、onpropertychange 当前对象属性改变就会触发

  缺陷:只支持低版本IE

4、oninput 和onpropertychange类似,当前对象属性改变就会触发

  缺陷:不支持低版本IE

可以看出以上几种方法都有各自的缺陷,1和2一般不能满足需求,3和4的缺陷正好互补,两个事件结合起来使用可以兼容IE、firefox、chrome;

所以同时绑定onpropertychange 和 oninput 可以达到实时检测输入内容的目的

(jquery用propertychange 和 input)。

代码实例(jquery):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>监听输入事件</title>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <style>
        b {color:red; font-size:18px;}
    </style>
</head>
<body>
    <textarea style="width:800px; height:300px;"></textarea>
    <div>你已经输入了<b>0</b>个字</div>
    <script>
        $(‘textarea‘).on(‘input propertychange‘,function(){
            var val = $(this).val()
            var textNum = val.length;
            if(textNum > 200){
                textNum = 200;
            }
            $(‘b‘).html(textNum)
            //超过200个字提示
            if(val.length>200){
                var textVal = val.substring(0,200)
                $(this).val(textVal)
                alert(‘评论内容大于200字‘)
            }
        })
    </script>
</body>
</html>

(转载请注明出处)

时间: 2024-11-02 21:34:38

使用 onpropertychange 和 oninput 检测 input、textarea输入改变的相关文章

同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴

实时检测 input.textarea输入改变事件,支持低版本IE,支持复制粘贴 检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件. 缺陷:复制粘贴时无法检测 2.onchenge 缺陷:要满足触发条件:当前对象的属性改变(由键盘或鼠标触发)且对象失去焦点 3.onpropertychange 当前对象属性改变就会触发 缺陷:只支持低版本IE 4.oninput 和onpropertychange类似,当前对象属性改变就会触发

转 移动端-webkit-user-select:none导致input/textarea输入框无法输入

移动端webview中写页面的时候发现个别Android机型会导致input.textareat输入框无法输入(键盘可以弹起,不是webView.requestFocus(View.FOCUS_DOWN);的问题) 由于移动端我习惯统一初始化样式: * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-tap-highlight-color: transpa

js监听输入框值的即时变化onpropertychange、oninput

js监听输入框值的即时变化onpropertychange.oninput 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感. 要达到的效果 很多情况下我们都会即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感.比如即时显示输入框已经被输入的字节数,或者即时读取输入的值来进行搜索引导,也就是google的关联搜索效果等. 只要我们能捕获即时事件就能做到很多事情. 需要了解的知识 首先,我们需要了解onchange和onpropert

兼容Firefox和IE的onpropertychange事件oninput

原文 兼容Firefox和IE的onpropertychange事件oninput onpropertychange能够捕获每次输入值的变化.例如:对象的value值被改变时,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获. 在文本框输入数据的时候,当键盘按下并放开的时候可以使用onkeyup来检测事件,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获.可是有的时候我们输入数据是采用粘贴的方式而不是键盘

input限制输入

要求:input框只能输入0-12的数字,且当输入数字大于12,则值为最大值12,输入数字小于0,则值为最小值0. <input type="text" oninput="limiteValue(this)"  onpropertychange="limiteValue(this)"/> 注:oninput 事件在用户输入时触发.该事件在 <input> 或 <textarea> 元素的值发生改变时触发.这里主

【前端JS】input textarea 默认文字,点击消失

如题,前端页面的 input textarea 有时候需要显示默认文字以提示用户,以下为实现代码,以 input 为例,textarea 可以直接搬用 HTML <input type="text" id="content" name="content" value="请输入内容"/> CSS <style type="text/css"> #content{color:#ccc;

使输入框(input &#160;&amp; textarea)变为只可读状态readonly=&quot;readonly&quot;,禁用输入框disabled=&quot;disabled&quot;

使输入框变为只可读状态 readonly="readonly" <input class="select-city" placeholder="请选择身份" readonly="readonly"> 禁用输入框 disabled="disabled" <input type="text" value="" disabled="disable

onchange onpropertychange 和oninput事件

汇总onchange onpropertychange 和oninput事件的区别:                1.onchange事件与onpropertychange事件的区别:                             onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发:onpropertychange事件却是实时触发,即每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件IE专有.                 2.oninpu

Android4.0 input事件输入流程详解(中间层到应用层)

在Android系统中,类似于键盘按键.触摸屏等事件是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序进行处理.系统启动时,窗口管理服务也会启动,该服务启动过程中,会通过系统输入管理器InputManager来负责监控键盘消息.当某一个Activity激活时,会在该Service下注册一个接收消息的通道,表明可以处理具体的消息,然后当有消息时,InputManager就会分发给当前处于激活状态下的Activity进行处理. InputManager的启动