微信小程序实现复选框效果

(编辑:jimmy 日期: 2024/9/24 浏览:2)

本文实例为大家分享了微信小程序实现复选框片展示的具体代码,供大家参考,具体内容如下

样式部分你们自由发挥,反正这里是什么都没写的,选中和没选中直接用这个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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?