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

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

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

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

相关推荐
冬奇Lab10 小时前
一天一个开源项目(第247篇):wxa-runner —— 让小程序在普通浏览器里用微信官方基础库跑起来,直接接 Playwright 做无头 E2E
微信小程序·开源
paopaokaka_luck11 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
andrsted11 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
鶴哥只手遮天15 小时前
jQuery 4.0 源码架构与工程实践-第 10 章 尺寸、几何与显隐
前端·javascript·jquery
米米商聊17 小时前
图标能点,按钮就可用了吗?键盘、名称与收藏状态
前端·javascript
技术小甜甜18 小时前
【Cursor】Skill 被标黄色警告,怎么改成合格的 SKILL.md
开发语言·javascript·ai编程·cursor·1024程序员节·ai agent·skills
qetfw19 小时前
Bash 函数与流程控制:read、if、for、case 验证
linux·前端·javascript·bash
鬼手点金20 小时前
从 API 消息到模型 Token:Chat Template
java·前端·javascript·数据库·人工智能·深度学习·1024程序员节
Mr.Pascal1 天前
Javascript之什么是作用域?
javascript·1024程序员节
microrain1 天前
设备报文怎么变,SagooIoT 只约定三个函数名
javascript·物联网·golang·sagooiot