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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
js 加载并解析XML字符串的代码
Dec 13 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
jQuery实现Select左右复制移动内容
Aug 05 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
解决vue-cli中stylus无法使用的问题方法
Jun 19 Javascript
深入koa-bodyparser原理解析
Jan 16 Javascript
d3.js实现图形缩放平移
Dec 19 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python的词法分析与语法分析
2013/05/18 Python
PyMongo安装使用笔记
2015/04/27 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
UNIX文件名称有什么规定
2013/03/25 面试题
镇创先争优活动总结
2014/08/28 职场文书
与美同行演讲稿
2014/09/13 职场文书
工程资料员岗位职责
2015/04/13 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技