textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到。与单行文本框text控件不同,它不能通过maxlength属性来限制字数,为此必须寻求其他方法来加以限制以达到预设的需求。

通常的做法就是使用#脚本语言来实现对textarea文本域的字数输入限制,简单而实用。假设我们有一个id为 txta1 的textarea文本区,我们可以通过以下代码限制它的键盘输入字数为10个字(汉字或其他小角字符):

<script language="#" type="text/ecmascript">
window.onload = function()
{
document.getElementById('txta1').onkeydown = function()
{ if(this.value.length >= 10) event.returnValue = false;
}
}
</script>

JavaScript输入框字数实时统计更新

如上图所示的输入框的字体计算在各大网站上是在熟悉不过的了,当然在pc端制作起来也是相当简单,只要捕捉键盘事件对输入框中的字数进行获取,再用限制字数减去获取的字数便可以实时计算出“还可以输入多少字”。但是在移动端这个方法还像是不可行的,第一,pc端可以使用keyup或者keydown进行事件捕捉,当然移动端也可以使用他们,但是在移动端拼音输入时就会出现下图的情况:

当我拼音输入完毕要选择我的目标汉字时,键盘上方的汉字“我是你大哥”就不属于键盘的一部分了,所以这个时候点击”我是你大哥“进行选择是就不会触发keyup或者keydown事件,那么下方的“还可以输入**”字“就会出现错误,也就会出现bug。下面我就把pc端的字数计算与移动端的字数计算全都写出来:

1.pc端方法:

$("textarea").on("keyup",function(){var textLength = $("textarea").val().length;var numLength = 500-textLength;$(".takeTip span").text(numLength);
})

已上是最常用的一种方法,这种方法在pc端完美运行,很简单。

2.移动端方法:

setInterval(function(){var textLength = $("textarea").val().length;var numLength = 500-textLength;$(".takeTip span").text(numLength);
},100)

因为移动端方法会出现keyup无法触发的问题,所以就只能不用与键盘相关的事件来进行捕捉,使用setInterval函数来进行实时的监控,在移动端完美运行。

下面是vue版:

watchWordsCount:function(){    setInterval(function(){        var textLength = $("textarea").val().length;        var numLength = 20-textLength;        if(numLength<=0){            $(".textarea").val($(".textarea").val().substr(0, 20));            $(".nowcount").html('<span class="red">评论内容超出最大限制</span>'+(20));

        }else{            $(".nowcount").text(20-numLength);        }

    },100)}
 

 mounted:function(){this.watchWordsCount();},

<textarea id="content" class="textarea" placeholder="俺们村提倡言论自由哦" rows="4"></textarea><div class="textarea-count"><span class="nowcount">0</span>/20</div>

 上面的那种方法并不是很好,因为一直开的定时器,下面改造一下:

html不变,用了vue的watch方法;

watch: {commentText: function (val) {if(val.length>=120){this.commentText = val.substr(0,120);this.nowcount = '<span class="red">评论内容超出最大限制</span>120';}else{this.nowcount = val.length;}}}

转载于:https://www.cnblogs.com/lguow/p/9298046.html

JavaScript 实现textarea限制输入字数, 输入框字数实时统计更新,输入框实时字数计算移动端bug解决...相关推荐

  1. html 实时计算字数,JavaScript 实现textarea限制输入字数, 输入框字数实时统计更新,输入框实时字数计算移动端bug解决...

    textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到.与单行文本框text控件不同,它不能通过maxlength属性来限制字数,为此必须寻求其他方法来加以限制 ...

  2. 输入框实时字数计算移动端bug解决

    作者:旺仔 如上图所示的输入框的字体计算在各大网站上是在熟悉不过的了,当然在pc端制作起来也是相当简单,只要捕捉键盘事件对输入框中的字数进行获取,再用限制字数减去获取的字数便可以实时计算出" ...

  3. C语言,实现从键盘输入20个整数,统计非负数个数,并计算非负数之和

    #include<stdio.h> int main(){ int a[20]; int c=0,sum=0,i; for(i=0;i<20;i++) { scanf("% ...

  4. 实现textarea限制输入字数

    2019独角兽企业重金招聘Python工程师标准>>> textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到.与单行文本框text控件不同, ...

  5. textarea输入框实时 统计字数(可统计中文,英文字数)

    textarea输入框实时 统计字数(可统计中文,英文字数) 效果图如下所示: html部分: <textarea name="des" id="" ro ...

  6. texearea 限制字数_实现textarea限制输入字数

    实现textarea限制输入字数(包含中文只能输入10个,全ASCII码能够输入20个) textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到.与单行文本框t ...

  7. textarea html5限制字数,textarea文字输入字数限制

    textarea文字输入字数限制,不超300 300 function checkLen(obj) { var maxChars = 300;//最多字符数 if (obj.value.length  ...

  8. texearea 限制字数_js实现textarea限制输入字数

    实现textarea限制输入字数(包含中文只能输入10个,全ASCII码能够输入20个) textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到.与单行文本框t ...

  9. jquery实现输入框实时统计字数和设置字数限制功能

    <html><header><meta charset="utf-8"><title>测试实时字数显示</title>& ...

最新文章

  1. python之XML文件解析
  2. Prim算法(最小生成树;例题:nyoj38)
  3. 测试和恢复性的争论:面向对象vs.函数式编程
  4. Java自学!Java项目面试介绍
  5. Windows7中的系统健康报告
  6. oracle时间用法
  7. python画图标题为蓝色_python绘制语谱图怎么设置成黄蓝色
  8. snmp在企业网中的简单应用
  9. Ubuntu 14.04 安装flash插件;安装Cairo-Dock; 美化为Mac
  10. g++是什么_路由器信号分为2.4G和5G,有什么区别?怎么选?
  11. cad快看_有石CAD自动下单排版软件,让你的CAD都比别人强!
  12. C# 类似PS的魔棒工具(2)羽化
  13. argmin ,argmax函数
  14. 为何excel中数据无法计算机,电脑中excel表格内容无法复制的解决方法
  15. 特征选择方法详解Part2-卡方检验、互信息(Mutual Information)
  16. 【uniapp】如何设置单个页面背景颜色
  17. 鸿蒙系统可以微信吗,鸿蒙系统可以用微信吗?微信鸿蒙版本下载-游戏大玩家...
  18. React + Koa2打造『官方管理后台』10 总结
  19. java游戏西游孙悟空_玩了这本《西游冒险手册》,我才真正理解了孙悟空
  20. 不懂优雅停机,搞挂了线上服务该咋办?

热门文章

  1. 想成为优秀的程序员这些码德不能缺
  2. 【英语学习】【医学】生物化学(biochemistry)系统
  3. 阿里云CDN全站加速,说说动态加速那些事
  4. 微信小程序利用canvas绘制一个动画百分比圆圈
  5. linux字体渲染比不上windows,各位是怎么解决字体渲染问题的
  6. Shell循环语句(for、while、until)及echo、IFS
  7. 飞书会议视频会议系统,会议场景全hold住
  8. 敏捷開發: 利益相关者的管理
  9. ArcGIS制图学习(1)
  10. excel自动计算体育成绩