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

本文介绍如何使用微信小程序中的Checkbox组件实现多选功能,并通过示例代码展示了如何响应选择变化及展示选择结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

DEMO下载

效果图

checkbox组件效果图

WXML

<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

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…

其他

我的博客,欢迎交流!

我的优快云博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表

posted @ 2018-01-03 09:50 Newman·Li 阅读( ...) 评论( ...) 编辑 收藏
### 微信小程序 `checkbox-group` 的功能与用途 #### 1. 基本概念 `checkbox-group` 是微信小程序中的一个容器组件,用于包裹多个 `checkbox` 子组件。它的主要作用是将一组复选框视为整体处理,并通过其自身的事件机制捕获用户的交互行为。 当用户在一个 `checkbox-group` 中选择或取消某个 `checkbox` 时,会触发该组的 `bindchange` 或 `catchchange` 事件[^1]。此事件返回当前被选中项的值列表,开发者可以通过监听这些事件来获取用户的选择状态并执行相应的逻辑操作。 #### 2. 使用场景 `checkbox-group` 主要适用于多选项选择场景,比如问卷调查、兴趣爱好选择、权限设置等功能模块。它能够帮助开发者轻松管理复杂的多选逻辑,而无需单独为每一个 `checkbox` 添加事件监听器。 以下是典型的使用案例: - 用户可以选择多项服务订阅; - 表单提交前验证哪些项目已被勾选; - 实现动态更新界面的功能,基于用户的选择实时调整显示内容。 #### 3. 样式自定义 虽然默认情况下 `checkbox` 和 `checkbox-group` 提供了一定的基础样式支持,但在实际开发过程中可能需要更灵活的设计方案。例如更改勾选框大小、颜色或者隐藏原生图标等需求都可以通过 CSS 定义实现[^2]。 下面展示如何修改 `checkbox` 外观的一个简单例子: ```css /* 自定义 checkbox 风格 */ .wx-checkbox-input { width: 40rpx; height: 40rpx; border-radius: 50%; } /* 已选中状态下应用特殊效果 */ .wx-checkbox-input.wx-checkbox-input-checked { border-color: #6995FD; background-color: #6995FD; } /* 设置字体颜色以便于阅读 */ .wx-checkbox-input.wx-checkbox-input-checked::before { content: '\2713'; /* Unicode 对号字符 */ font-size: 28rpx; line-height: 40rpx; text-align: center; color: white; } ``` #### 4. 关于事件冒泡问题及其解决方案 值得注意的是,在某些特定布局下可能会遇到由 `checkbox-group` 引发的事件冒泡现象。尽管尝试将 `bindchange` 替换为 `catchchange` 来抑制这种传播并不奏效,但有一种有效的方法可以解决这个问题——即在其外部包裹一层带有 `catchtap="noop"` 属性的 `<view>` 元素[^3]。其中 `"noop"` 可以是一个简单的空函数声明,仅起到拦截作用而不做任何额外动作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值