不管做什麼類型的項目,幾乎都會碰到評論框。正好也是項目需要,就順便來總結總結:
在以往的前端中,大家都知道很容易實現。那麼,在小程序中,如何去實現它呢?其實,只要你仔細看了官方文檔https://mp.weixin.qq.com/debug/wxadoc/dev/component/textarea.html也很容易,思路如下:
1、在textarea中綁定bindinput事件。
2、通過var value = e.detail.value;獲取textarea的值。
3、通過 var len = parseInt(value.length);獲取textarea的長度。
先上效果:
源碼:
wxml代碼:
<view class="conts">
<textarea class="areas" placeholder='留下點評,幫助更多人' minlength="{{min}}" maxlength="{{max}}" bindinput="inputs">
<text class="currentWordNumber">{{currentWordNumber|0}}/{{max}}</text>
<text class="hint">{{texts}}</text>
</textarea>
</view>
wxss代碼:
.conts{
width: 750rpx;
height: auto;
border: 1rpx soldi red;
margin-top: 30rpx;
}
.areas{
height:152rpx;
font-size: 30rpx;
text-indent: 28rpx;
border: 1rpx solid gainsboro;
padding-top: 30rpx;
margin: 0 auto;
overflow: hidden;
position: relative;
}
.currentWordNumber{
font-size: 28rpx;
color: gray;
position: absolute;
left: 593rpx;
top: -6rpx;
}
.hint{
font-size: 28rpx;
position: absolute;
top: 120rpx;
left: 30rpx;
color: #FF6600;
}
js代碼:
Page({
data: {
texts:"至少5個字",
min:5,//最少字數
max: 520, //最多字數 (根據自己需求改變)
},
//字數限制
inputs: function (e) {
// 獲取輸入框的內容
var value = e.detail.value;
// 獲取輸入框內容的長度
var len = parseInt(value.length);
//最少字數限制
if(len <= this.data.min)
this.setData({
texts: "加油,夠5個字可以得20積分哦"
})
else if(len > this.data.min)
this.setData({
texts: " "
})
//最多字數限制
if(len > this.data.max) return;
// 當輸入框內容的長度大於最大長度限制(max)時,終止setData()的執行
this.setData({
currentWordNumber: len //當前字數
});
}
})
附加:input框