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