需求:实时监控文本输入框的字数,并加以限制
1、实时监控当前输入字数,直接使用onkeyup事件方法,给输入框加maxlength属性限制长度。如:

    <div><textarea id="txt" maxlength="10"></textarea><p><span id="txtNum">0</span>/10</p></div>
    var txt = document.getElementById("txt");var txtNum = document.getElementById("txtNum");txt.addEventListener("keyup", function(){txtNum.textContent = txt.value.length;})

此时已可以完成基本的监控功能,存在的问题:当输入英文时正常,但输入中文时,监控的数字会随拼音长度而变化。
2、解决方法:
compositionstart 事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词)。
compositionend 就是对应的就是一段文字输入的事件。
这两个属性有点类似于“开关”,如:开始进行中文输入的拼音时开关打开,不在改变监测得到的长度数值,完整输入一个或是一串文字后,开关关闭,得到监测的数值长度。

    var txt = document.getElementById("txt");var txtNum = document.getElementById("txtNum");var sw = false;      //定义关闭的开关txt.addEventListener("keyup", function(){if(sw == false){countTxt();}});txt.addEventListener("compositionstart", function(){sw = true;});txt.addEventListener("compositionend", function(){sw = false;countTxt();});function countTxt(){       //计数函数if(sw == false){        //只有开关关闭时,才赋值txtNum.textContent = txt.value.length;}}

在vue中的写法:
template:

<textarea name="suggestions-text" id="textarea" cols="30" rows="10" maxlength="300" v-on:keyup="write()" v-on:compositionstart="importStart()" v-on:compositionend="importEnd()" v-model="textContent"></textarea>
<p class="counterNum">{{conterNum}}/300</p>

data:

textContent: '',
conterNum: 0,
chnIpt: false,

methods:

write() {let self = this;if (self.chnIpt == false) {self.conterNum = self.textContent.length;}
},
importStart() {this.chnIpt = true;
},
importEnd() {this.chnIpt = false;this.write();
}

作者:rookie.he(kuke_kuke)
博客链接:http://blog.csdn.net/qq_33599109
欢迎关注支持,谢谢!

实时监控文本框输入字数相关推荐

  1. Axure 文本框输入字数限制

    效果如下图: 步骤: 1.文本域准备工作: 2.计数器准备工作: 3.交互工作: ①.选中文本域点击新建交互 ②.选择文本发生改变时 ③. 设置计数器函数  ④.设置文本域函数 欢迎互相学习交流 微信 ...

  2. 实时监听文本框输入 oninput、onchange与onpropertychange事件的用法和区别

    前端页面开发的很多情况下都需要实时监听文本框输入,比如腾讯微博编写140字的微博时输入框hu9i动态显示还可以输入的字数.过去一般都使用onchange/onkeyup/onkeypress/onke ...

  3. 简单的文本框输入实时计数

    2019独角兽企业重金招聘Python工程师标准>>> 简单的文本框输入实时计数 $(function(){suminput('idea','60');})//记录输入字符方法fun ...

  4. 监听文本框输入开发仿新浪微博限制输入字数的textarea插件

    监听文本框输入 Firefox.Chrome.IE9,IE10 均支持 oninput 事件,此外所有版本的 IE 均支持 onpropertychange 事件. oninput 事件在用户输入.退 ...

  5. 文本框输入还剩多少字数统计代码

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. java 限制文本框长度_java中限制文本框输入长度的显示(转载)

    我最近在网上看到一篇文章很不错,对于限制文本框输入长度的显示很方便 JAVA不像C#能够有maxLength这个属性对文本框的输入长度进行控制,但也是有办法实现相应的功能的. 写一个MyDocumen ...

  7. [正则表达式]文本框输入内容控制

    整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n}$". 只能输入至少n ...

  8. html ip输入框效果,html5 input文本框输入动画特效

    特效描述:文本框输入动画 动画特效.几个更鼓舞人心的风格为文本框输入动画包括一些新技术和新思想. 代码结构 1. 引入CSS 2. 引入JS 3. HTML代码 Manami Username Web ...

  9. Java集合框架上机练习题:用户分别从两个文本框输入学生的姓名和分数.............

    编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中. import java.awt.FlowLayout; import java.a ...

最新文章

  1. 安装虚拟机及Linux常用操作命令
  2. linux 查看进程端口_如何简单有效的查看windows进程使用了哪些端口
  3. 卷积神经网络CNNs的理解与体会
  4. window,windowManager --《android 艺术探索读书》笔记
  5. XCTF WEB webshell
  6. 产品解读 | 敏捷版数据库场景 一站式快速构建企业全场景数据库管理平台
  7. Python如何安装包_Python系列学习笔记
  8. 在PHP中利用wsdl创建标准webservice
  9. 解释http和html,解释HTTP、HTML的含义
  10. 缓存中间件-Memcache命令介绍
  11. 高性能计算(HPC)的前景、如何学习HPC
  12. vue脚手架实现选项卡_从零一步步实现一个前端脚手架
  13. DLL导出类避免地狱问题的完美解决方案
  14. 小米路由器挂php,小米路由器mini 安装openWrt+更新源+挂载U盘+安装python
  15. 条码枪接入智能网关,通过条码查询数据库,数据写入PLC寄存器
  16. 为什么Dell官方声卡驱动安装不上的原因分析与解决?
  17. Python爬取手机号码前7位号段归属地及运营商
  18. 实测 CSDN开发助手-Chrome插件
  19. 【此间乐,不思蜀】 大一不想咸鱼的暑假7.17
  20. PHP的抽象类和抽象方法 abstract

热门文章

  1. 荣耀平板v6和华为matepad pro哪个更好
  2. linux:命令su、exit、sudo登入、退出用户、临时root权限详解。
  3. arch linux 同步时间,linux – Arch ntpd / ntpdate不同步时钟
  4. 塔望食业洞察丨大健康黄金赛道,低GI食品风起
  5. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 0: invalid start byte 错误解决
  6. javaweb项目:用户(登录和注销)实现 SSM框架(mybatis-generator自动生成代码)
  7. “21天好习惯“第一期-21
  8. 第十二章:项目采购管理 - (12.2 实施采购)
  9. C语言 深度探究C语言中的内存管理
  10. R语言分析蛋白质组学数据:飞行时间质谱(MALDI-TOF)法、峰值检测、多光谱比较...