Checkbox 复选框

基础用法

通过value绑定复选框的勾选状态

  1. <van-checkbox value="{{ checked }}" bind:change="onChange">复选框</van-checkbox>
  1. Page({
  2. data: {
  3. checked: true
  4. },
  5. onChange(event) {
  6. this.setData({
  7. checked: event.detail
  8. });
  9. }
  10. });

禁用状态

通过设置disabled属性可以禁用复选框

  1. <van-checkbox disabled value="{{ checked }}" bind:change="onChange">
  2. 复选框
  3. </van-checkbox>

禁用文本点击

通过设置label-disabled属性可以禁用复选框文本点击

    自定义形状

    自定义颜色

    通过checked-color属性可以自定义选中状态下的图标颜色

    1. <van-checkbox value="{{ checked }}" checked-color="#07c160" bind:change="onChange">
    2. 复选框
    3. </van-checkbox>

    通过icon-size属性可以自定义图标的大小

    1. <van-checkbox value="{{ checked }}" icon-size="25px">复选框</van-checkbox>

    自定义图标

    通过 icon 插槽自定义图标

    1. <van-checkbox use-icon-slot value="{{ checked }}" bind:change="onChange">
    2. 自定义图标
    3. <image slot="icon" src="{{ checked ? activeIcon : inactiveIcon }}" />
    4. </van-checkbox>
    1. Page({
    2. data: {
    3. checked: true,
    4. activeIcon: '//img.yzcdn.cn/icon-active.png',
    5. inactiveIcon: '//img.yzcdn.cn/icon-normal.png'
    6. },
    7. onChange(event) {
    8. this.setData({
    9. checked: event.detail
    10. });
    11. }
    12. });

    复选框组

    1. Page({
    2. data: {
    3. result: ['a', 'b']
    4. },
    5. onChange(event) {
    6. this.setData({
    7. result: event.detail
    8. });
    9. }
    10. });

    设置最大可选数

    1. <van-checkbox-group value="{{ result }}" bind:change="onChange" max="{{ 2 }}">
    2. <van-checkbox name="a">复选框 a</van-checkbox>
    3. <van-checkbox name="b">复选框 b</van-checkbox>
    4. </van-checkbox-group>

    搭配单元格组件使用

    此时你需要再引入CellCellGroup组件,并通过 checkbox 的 toggle 方法手动触发切换

    1. <van-checkbox-group value="{{ result }}" bind:change="onChange">
    2. <van-cell-group >
    3. <van-cell
    4. wx:for="{{ list }}"
    5. wx:key="index"
    6. title="复选框 {{ item }}"
    7. value-class="value-class"
    8. clickable
    9. data-index="{{ index }}"
    10. >
    11. <van-checkbox catch:tap="noop" class="checkboxes-{{ index }}" name="{{ item }}" />
    12. </van-cell>
    13. </van-cell-group>
    14. </van-checkbox-group>
    1. Page({
    2. data: {
    3. list: ['a', 'b', 'c'],
    4. result: ['a', 'b']
    5. },
    6. onChange(event) {
    7. this.setData({
    8. result: event.detail
    9. });
    10. }
    11. toggle(event) {
    12. const { index } = event.currentTarget.dataset;
    13. const checkbox = this.selectComponent(`.checkboxes-${index}`);
    14. checkbox.toggle();
    15. },
    16. noop() {}

    API

    Checkbox Props

    参数说明类型默认值版本
    name在表单内提交时的标识符string--
    value所有选中项的 nameArray--
    disabled是否禁用所有单选框booleanfalse-
    max设置最大可选数number0(无限制)-

    Checkbox Event

    Checkbox 外部样式类

    类名说明
    custom-class根节点样式类
    icon-class图标样式类
    label-class描述信息样式类

    CheckboxGroup Event

    Checkbox Slot

    名称说明
    -自定义文本
    icon自定义图标

    Checkbox 方法

    通过 selectComponent 可以获取到 checkbox 实例并调用实例方法