微信小程序 --- 模拟复选框

样式部分你们自由发挥,反正这里是什么都没写的,选中和没选中直接用这个this.data.arrStatus[checkIndex]去判断就行了,之后你们都懂的~~爱怎么耍怎么耍

效果预览:
这里写图片描述

js部分

// page/index/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    items: [
      { name: 'USA', value: '美国' },
      { name: 'CHN', value: '中国' },
      { name: 'BRA', value: '巴西' },
      { name: 'JPN', value: '日本' },
      { name: 'ENG', value: '英国' },
      { name: 'TUR', value: '法国' },
    ],
    arr: [],
    arrStatus: []
  },

  check: function (e) {
    //获取当前选中的值
    var checkValue = e.currentTarget.dataset.val;
    //获取当前选中的下标
    var checkIndex = e.currentTarget.dataset.index;
    //当前选中的取反值
    this.data.arrStatus[checkIndex] = !this.data.arrStatus[checkIndex];
    if (this.data.arrStatus[checkIndex]) {
      //如果当前为选中状态则将值插入进数组中
      this.data.arr.push(checkValue);
    }else{
      //如果当前为未选中状态则将值从数组中删除并返回一个新的数组
      for (var i in this.data.arr) {
        if (this.data.arr[i] == checkValue) {
          this.data.arr.splice(i);
        }
      }
    }
    //打印当前所选中的数据
    console.log(this.data.arr);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //设置数组中每一个数据的状态
    for (var i in this.data.items) {
      this.data.arrStatus[i] = false;
    }
  },
})

wxml部分:

<block wx:for='{{ items }}'> 
  <text data-index='{{ index }}' data-val='{{ item.value }}' catchtap='check'>{{ item.value }}</text>
</block>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值