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

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

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%;
}

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

相关推荐
哈__6 小时前
React Native 鸿蒙跨平台开发:PixelRatio 像素适配
javascript·react native·react.js
用户6387994773056 小时前
每组件(Per-Component)与集中式(Centralized)i18n
前端·javascript
DarkLONGLOVE7 小时前
Vue组件使用三步走:创建、注册、使用(Vue2/Vue3双版本详解)
前端·javascript·vue.js
DarkLONGLOVE7 小时前
手把手教你玩转Vue组件:创建、注册、使用三步曲!
前端·javascript·vue.js
冴羽8 小时前
2026 年前端必须掌握的 4 个 CSS 新特性!
前端·javascript·css
狗头大军之江苏分军8 小时前
告别旧生态:Ant Design 6 不再支持 IE 与现代前端趋势解读
前端·javascript·后端
Highcharts.js8 小时前
Highcharts Grid 表格/网格安装 |官方安装文档说明
开发语言·javascript·表格组件·highcharts·官方文档·安装说明·网格组件
3824278279 小时前
表单提交验证:onsubmit与return详解
前端·javascript·html
bug总结9 小时前
身份证号脱敏的正确实现
前端·javascript·vue.js
林太白10 小时前
Vite8 Beta来了,Rolldown携手Oxc
前端·javascript·后端