1、添加变量
编辑opinion.vue文件script部分的代码,添加data对象,在里面定义两个变量opinion、word_count
opinion是用户反馈信息,word_count是用户反馈信息的字数
<script> export default { data () { return { opinion:"", word_count:0 } } } </script>
2、添加页面代码
(1)编辑opinion.vue文件template部分的代码,
<template> <div> <div class="container"> <div class="row"> <label class="name">意见与反馈</label> </div> <div class="row text"> <div> <textarea v-model='opinion' class = "input" maxlength='200' placeholder="点击这里填写你的建议、问题反馈、合作等信息,我会认真对待每一条信息~" ></textarea> <!-- word_count用来保存实时输入字数的长度 --> <label class="word-count">{{word_count}}/200</label> </div> </div> </div> <button>提交</button> </div> </template>
(2)textarea组件介绍
textarea是多行输入框,是小程序的原生组件
v-model:用来绑定在data对象中定义的opinion变量,会将用户输入的信息,保存到opinion中
maxlength:限定最长输入的长度
placeholder:当未输入时,显示的提示信息
3、实时监控字数
当用户在textarea多行输入框中进行输入,会实时显示当前输入的字数,这就要用到监控函数watch了
在watch监控函数中定义一个与需要监控的变量同名的方法,注意,必须是与需要监控的变量同名的方法
//参考代码,无需粘贴 //data () { //... //}, //需要添加的代码 watch: { //与需要监控的变量opinion同名的方法 opinion () { this.word_count = this.opinion.length } }
4、查看效果
在输入框中输入时时,右下角的数字也会随之变化
5、可能遇到的问题
因为我们限定了200的字数,在微信开发者工具上面测试的时候,可能会出现还没到200字就输入不了的情况
就像下面这样,想输入拼音dao,但是输入d就卡住了,不能再往下输入了。
这个是因为电脑端会将输入过程中的拼音的长度也计算到输入总长度中,所以「到」字虽然只是一个字符,但是拼音有「dao」有三个字符,输入「d」到200字符的限定长度了,后面的拼音就输入不了了
不过不需要担心,在手机端不会出现这种情况,手机端输入过程中拼音的长度不会计算到输入总长度中,算是微信开发者工具的一个无关痛痒的小bug吧