zoukankan      html  css  js  c++  java
  • oninput事件(解决onkeyup无法监听到复制黏贴)

    change事件需要两个条件触发:
       a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)
       b)当前对象失去焦点(onblur) 

      keypress  能监听键盘事件,但鼠标复制黏贴操作就无能为力

    HTML5 出现的input事件: 只要输入框内容发生变化即可触发(IE: propertychange)
    ---------------------
    文本域输入字符有限制 如最多125个字符。 一般可以用 max属性
    <textarea id="appy-reason" max="125"></textarea>

    但textarea按enter键,会导致统计字数不一致
    max认为125个字符时,用angular.element("#appy-reason).val().length统计出124个字符
    这是因为enter键 :
    有的系统 (<换行><回车> 2个字符)
    有的系统 ' '是回车,' '是换行(一个字符)
    所以抛弃max属性 ,利用onkeyup事件自己计算
    -----------------------------------------------------------------

    onkeyup无法监听到复制黏贴导致的内容变化,可以使用oninput事件

    注:IE下 用 onpropertychange

    <textarea
     ng-keydown = "addReason(event)"
     oninput = "angular.element(this).scope().addReason(event)"
     onproperty = "angular.element(this).scope().addReason(event)">
     
     </textarea>
    ng-keydown 要注意backspace键和delete键 字数-1
    enter键,应该注意阻止事件冒泡
    ----------------------------------------------------------------
    键盘与文本事件
    按键顺序:
    keydown > keypress > keyup
    keydown keypress 发生在文本变化之前 (keypress监听不到backspace键和delete键)

    backspace键 keyCode:8
    delete键 keyCode:46
    enter键    keyCode:13
    -----------------------------------------------------------------
    
    
  • 相关阅读:
    uniapp IOS使用uni.getLocation获取不到具体城市名字
    uniapp 打开[ios/安卓]GPS定位权限
    for循环中利用计时器使用let和var
    uniapp 调起底部输入框textarea聊天页面被键盘顶起
    父子组件传布尔类型,发现有问题一直传字符串
    Kafka学习-基础知识
    剑指offer-删除链表中重复的节点
    LEACH协议原文详解
    主流机器学习框架
    算法工程师-职位描述
  • 原文地址:https://www.cnblogs.com/zyjzz/p/7074610.html
Copyright © 2011-2022 走看看