1. 程式人生 > >微信小程式開發中textarea文字域監聽字數限制與動態計算

微信小程式開發中textarea文字域監聽字數限制與動態計算

微信小程式開發時常會有評論或者備註功能,都會用到文字域字元長度計算以及字元限制的功能,筆者把最簡潔易用的案例分享出來。學習之前先看微信官方API文件 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 //當前字數  
        });
  }
})

點贊分享是對作者最大的支援。歡迎廣大開發者朋友持續關注博主,筆者微信(同電話):18629374628