微信小程序----checkbox组件

2021-02-01 11:13:17 浏览数 (2)

效果图

WXML

代码语言:javascript复制
<view class="tui-content">
  <checkbox-group bindchange="checkboxChange">
    <label class="checkbox" wx:for="{{items}}">
      <view class="tui-menu-list"><checkbox value="{{item.name}}" checked="{{item.checked}}"/>{{item.value}}</view>
    </label>
  </checkbox-group>
  <view class="tui-show-name">
    <text wx:for="{{checkArr}}"> {{item}} </text>
  </view>
</view>

JS

代码语言:javascript复制
Page({
  data: {
    items: [
      { name: 'USA', value: '美国' },
      { name: 'CHN', value: '中国', checked: 'true' },
      { name: 'BRA', value: '巴西' },
      { name: 'JPN', value: '日本' },
      { name: 'ENG', value: '英国' },
      { name: 'TUR', value: '法国' },
    ],
    checkArr: ['中国']
  },
  checkboxChange: function (e) {
    var arr = [];
    e.detail.value.forEach(current => {
      for (var value of this.data.items){
        if(current === value.name){
          arr.push(value.value);
          break;
        } 
      }
    });
    this.setData({checkArr: arr});
  }
})

总结

  1. 由于e.detail.value和this.data.items都是数组元素进行属性对比查找,所以此处采用了双循环。
  2. forEach循环不能在循环中跳出,所以在循环this.data.items时采用for…of…

0 人点赞