js实时监控文本框输入字数的实例代码


Posted in Javascript onJanuary 18, 2018

需求:实时监控文本输入框的字数,并加以限制

js实时监控文本框输入字数的实例代码

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();
}

以上这篇实时监控文本框输入字数的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
Apr 16 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
js实现Form栏显示全格式时间时钟效果代码
Aug 19 Javascript
浅析Bootstrip的select控件绑定数据的问题
May 10 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
vue+iview/elementUi实现城市多选
Mar 28 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
Jan 18 #Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 #Javascript
分享ES6的7个实用技巧
Jan 18 #Javascript
vue 动态修改a标签的样式的方法
Jan 18 #Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 #Javascript
Nuxt.js踩坑总结分享
Jan 18 #Javascript
Nuxt.js实战详解
Jan 18 #Javascript
You might like
星际争霸中的对战模式介绍
2020/03/04 星际争霸
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
jquery中radio checked问题
2015/03/16 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
python模块restful使用方法实例
2013/12/10 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python简单操作excle的方法
2018/09/12 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python能做什么 python的含义
2019/10/12 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
采购求职信
2014/03/17 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
参加招聘会后的感想
2015/08/10 职场文书