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

来源:互联网 发布:陕西广电网络是国企嘛 编辑:程序博客网 时间:2024/05/21 21:12


在前端开发中,很多情况下需对输入内容进行验证。实时统计功能,对于定长输入而言,可以让用户实时明确输入界限,并合理安排内容。 
2017-11-27 16:51:31 增加vue textareat字数统计 
注意: 
1、:maxlength=”100”为element设置textareat最大输入字符数的语法; 
2、@input=”descInput”绑定输入事件。 
另:<el-table-column prop="questioncontent" label="会员疑问" show-overflow-tooltip>中的show-overflow-tooltip,用于设置超出长度显示…,鼠标悬浮显示全部字符。

<el-form-item label="会员的疑问" style="word-break: break-all;">     <div class="data-item-data1">{{questiondetail.content}}</div></el-form-item>
  • 1
  • 2
  • 3

中的word-break: break-all;用于太长时换行显示。 
1、vue代码

<el-dialog title="新增答案" :visible.sync="adddialogVisible" size="tiny">        <el-form  ref="questionanswer" :model="questionanswer" :rules="consumerules" label-width="80px">                  <el-form-item label="我的回答">            <el-input type="textarea" :maxlength="100" v-model="questionanswer.answercontent" @input="descInput" placeholder="请在此处输入您的回答"></el-input>          </el-form-item>          <div style="float:right;"><span class="contentcount">{{remnant}}</span>/100</div>        </el-form>       </el-dialog>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、script代码

<script type='text/ecmascript-6'>export default {    data() {      return {      adddialogVisible: false,      remnant: 0,      questionanswer: {          answercontent:''      }    },    methods: {      descInput(){       var txtVal = this.questionanswer.answercontent.length;       if(txtVal>100){        this.remnant = 100;       }else{        this.remnant = txtVal;       }      }    }</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

字数实时统计更新

下面将以【消息内容】为例,设计实现输入框字数实时统计更新功能。 
项目架构如下:

  • message 
    • message.css
    • message.js
    • message.tpl

1. 在message.tpl文件中定义网页元素

//移动端微信公众号开发<div class="weui-cell__bd">    <textarea id="content" class="weui-textarea" placeholder="新消息内容"                                      rows="3">    </textarea>    <div class="weui-textarea-counter">        <span class="contentcount">0</span>/200    </div></div>//web端业务开发<div class="modal-body" style="box-sizing: border-box;">    <form id="newtaskform" class="form-horizontal"></form></div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.在message.js文件中绑定事件,用以统计输入字符

//移动端 tooltips提示形式$('#content').bind('input propertychange', function () {    var fizeNum = $(this).val().length;    if (fizeNum > 200) {        var char = $(this).val();        char = char.substr(0, 200);        $(this).val(char);        fizeNum = 200;        tooltipsShow('消息内容不能超过200字');    }    $(this).parent().find('.contentcount').text(fizeNum);});//web网页span提示形式FileName = '<div class="form-group" id="text"><label class="col-sm-3 control-label" id="textlabel"><span class="dot"></span>消息内容</label>'+ '<div class="col-sm-9 input-container "><textarea id="msgcontent" name="text" rows="8" style="width:100%;padding-right:20px"></textarea>' +'<div class="counter" style="float:right;">' +'<span id="texttips" style="display: none; color: #ff0000;">消息内容超出最大限制</span><span class="contentcount">0</span>/200</div>' +'</div></div>';$("#newtaskform").append(FileName);$('#msgcontent').bind('input propertychange', function () {    var fizeNum = $(this).val().length;    if (fizeNum > 200) {        var char = $(this).val();        char = char.substr(0, 200);        $(this).val(char);        fizeNum = 200;        $("#texttips").show();    }else{        $("#texttips").hide();    }    $(this).parent().find('.contentcount').text(fizeNum);});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

 

原创粉丝点击