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

在前端开发中,很多情况下需对输入内容进行验证。实时统计功能,对于定长输入而言,可以让用户实时明确输入界限,并合理安排内容。
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>

中的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>

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>

字数实时统计更新

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

  • 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>

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);
});


  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fool_dawei

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值