微信小程序简单输入框界面(实现选择标签功能)

微信小程序简单输入框界面,实现选择标签功能、输入框字数计数的简单界面功能。

1、js代码:

javascript 复制代码
Page({

  /**
   * 页面的初始数据
   */
  data: {
    count: 500,
    labelList: [{
        text: '开心',
        checked: true
      }, {
        text: '难受想哭',
        checked: true
      },
      {
        text: '快乐',
        checked: false
      }, {
        text: '囧',
        checked: false
      },
      {
        text: '悲伤',
        checked: false
      }, {
        text: '悲哀',
        checked: true
      },
      {
        text: 'emeo',
        checked: false
      }, {
        text: '流汗',
        checked: false
      },
      {
        text: '悲痛欲绝',
        checked: false
      }, {
        text: '加油',
        checked: true
      },
      {
        text: '沮丧',
        checked: true
      }, {
        text: '努力',
        checked: true
      },
    ]
  },
  inputArea: function (e) {
    let num = 500 - e.detail.value.length;
    this.setData({
      count: num < 0 ? 0 : num
    });
  },
  //选择监听
  selectClick(e) {
    let inx = e.currentTarget.dataset.index;
    let flag = this.data.labelList[inx].checked;
    let check = 'labelList[' + inx + '].checked';
    this.setData({
      [check]: !flag
    })
  },
  // 提交
  sumbitClick(e) {
    let formData = e.detail.value;
    let list = this.data.labelList,
      attr = [];
    for (let i = 0; i < list.length; i++) {
      if (list[i].checked) {
        attr.push(list[i].text)
      }
    }
    formData.label = attr;
    // 接受的数据,具体根据自己需求写
  },
})

2、wxml代码:

html 复制代码
<form bindsubmit="sumbitClick">
  <view class="box">
    <view class="top-title">
      <text class="title">标题</text>
      <input name="title" class="weui-input" maxlength="30" auto-focus placeholder="好的标题更能引人注目~" />
    </view>
    <view class="bottom-box">
      <text class="title">说点儿什么呢?</text>
      <view class="area-text">
        <textarea name="content" bind:input="inputArea" class="weui-input" maxlength="500" placeholder="分享你的好心情~" />
        <view class="right">还可输入<text class="red"> {{count}} </text>字数</view>
      </view>
    </view>
    <view class="bottom-box">
      <text class="title">选择标签</text>
      <view class="label-box">
        <block wx:for="{{labelList}}" wx:key="item">
          <text bindtap="selectClick" data-index="{{index}}" class="label {{item.checked?'select':''}}">{{item.text}}</text>
        </block>
      </view>
    </view>
    <button class="button" type="warn" form-type="submit">提交信息</button>
  </view>
</form>

3、wxss代码:

css 复制代码
page {
  background-color: white;
}

.box {
  margin: 20rpx;
}

.top-title {
  margin-bottom: 20rpx;
  border-bottom: 1rpx solid rgb(218, 217, 217);
}

.title {
  font-size: 32rpx;
}

.weui-input {
  padding: 15rpx 0;
  font-size: 30rpx;
  width: 100%;
}

.bottom-box {
  margin-top: 10rpx;
}

.right {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  font-size: 26rpx;
  margin: 5rpx;
  color: gray;
}

.red {
  color: red;
}

.area-text {
  margin-top: 20rpx;
  border: 1rpx solid rgb(218, 217, 217);
  padding: 5rpx 10rpx;
  border-radius: 10rpx;
}

.label {
  background-color: white;
  color: rgb(255, 196, 0);
  margin: 10rpx 25rpx 15rpx 0;
  font-size: 28rpx;
  padding: 5rpx 20rpx;
  border-radius: 50rpx;
  text-align: center;
  border: 1rpx solid rgb(255, 196, 0);
}

.select {
  background-color: rgb(255, 196, 0);
  color: white;
}

.label-box {
  margin-top: 10rpx;
  flex-wrap: wrap;
  display: inline-flex;
  flex-direction: row;
}

.button {
  border-radius: 50rpx;
  text-align: center;
  color: white;
  font-size: 30rpx;
  margin: 50rpx auto;
  width: 90%;
}

布局简单,对于初学者可以用来看看,随便写的,如果出现运行异常,请使用真机预览呦~

相关推荐
Myli_ing34 分钟前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
I_Am_Me_1 小时前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
℘团子এ1 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
学习前端的小z1 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
前端百草阁2 小时前
【TS简单上手,快速入门教程】————适合零基础
javascript·typescript
彭世瑜2 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
Backstroke fish2 小时前
Token刷新机制
前端·javascript·vue.js·typescript·vue
zwjapple2 小时前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five2 小时前
TypeScript项目中Axios的封装
开发语言·前端·javascript
临枫5412 小时前
Nuxt3封装网络请求 useFetch & $fetch
前端·javascript·vue.js·typescript