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 相关文章推荐
表单提交时自动复制内容到剪贴板的js代码
Mar 16 Javascript
javascript 文章截取部分无损html显示实现代码
May 04 Javascript
jquery实现输入框动态增减的实例代码
Jul 14 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
Node.js的特点和应用场景介绍
Nov 04 Javascript
JavaScript中Function详解
Feb 27 Javascript
javascript实现根据3原色制作颜色选择器的方法
Jul 17 Javascript
js实现图片轮播效果
Dec 19 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
May 24 Javascript
CSS+jQuery实现简单的折叠菜单
Dec 20 Javascript
Node.js连接MongoDB数据库产生的问题
Feb 08 Javascript
详解vue中使用微信jssdk
Apr 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
php实现的Cookies操作类实例
2014/09/24 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
一则python3的简单爬虫代码
2014/05/26 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Python 实现简单的电话本功能
2015/08/09 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
python线程join方法原理解析
2020/02/11 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
python实现图像外边界跟踪操作
2020/07/13 Python
Python如何读写字节数据
2020/08/05 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
教师个人的自我评价分享
2014/01/02 职场文书
致200米运动员广播稿
2014/02/06 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers