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压缩工具:X2JSCompactor
Jun 13 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
JS将表单导出成EXCEL的实例代码
Nov 11 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
将list转换为json失败的原因
Dec 17 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
Dec 19 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
vue权限管理系统的实现代码
Jan 17 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
Terran魔法科技
2020/03/14 星际争霸
php 短链接算法收集与分析
2011/12/30 PHP
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
python挖矿算力测试程序详解
2019/07/03 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python生成随机红包的实例写法
2019/09/02 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
python一些性能分析的技巧
2020/08/30 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
.NET remoting的两种通道是什么
2016/05/31 面试题
大学生的网上创业计划书
2013/12/31 职场文书
艾滋病宣传标语
2014/06/25 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
经理助理岗位职责
2015/02/02 职场文书
《比的意义》教学反思
2016/02/18 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技