在一组可选项中进行多选,单独使用可以表示两种状态之间的切换,和 switch 类似。区别在于切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。
属性
属性 | 类型 | 默认值 | 说明 |
checked | boolean | false | 是否选中 |
disabled | boolean | false | 是否禁用 |
color | string | false | 选中的颜色,同 CSS 色值 |
value | string | - | checkbox 携带的 value 值, 在原生 form 表单提交的时候有用 |
icon | string | - | 自定义未选中图标,支持 Icon 和图片路径 |
checkedIcon | string | - | 自定义选中状态的图标,支持 Icon 和图片路径 |
disabledIcon | string | - | 自定义禁用状态的图标,支持 Icon 和图片路径 |
disabledCheckedIcon | string | - | 自定义禁用选中状态的图标,支持 Icon 和图片路径 |
id | string | - | 表单元素 id |
name | string | - | 表单元素 name |
className | string | - | 类名 |
事件
事件名 | 说明 | 类型 |
onChange | 选中状态改变,触发回调 |
|
样式类
类名 | 说明 |
amd-checkbox | 标签样式 |
amd-checkbox-disabled | checkbox 组件禁用样式 |
amd-checkbox-checked | checkbox 选中样式 |
amd-checkbox-base | 原始 checkbox 样式 |
amd-checkbox-fake | checkbox 组件未选中样式 |
amd-checkbox-fake-custom | 自定义图标时的样式 |
代码示例
基本使用
index.axml 的代码示例如下:
<view class="demo">
<demo-block title="基础用法" padding="0">
<list>
<list-item className="demo-item">
<label>
<checkbox/>
</label>
</list-item>
<list-item className="demo-item">
<label>
<checkbox />
<text>有描述的复选框</text>
</label>
</list-item>
<list-item className="demo-item">
<label>
<checkbox color="#00b578" checked/>
<text>指定颜色</text>
</label>
</list-item>
</list>
</demo-block>
<demo-block title="默认选中" padding="0">
<list-item className="demo-item">
<label>
<checkbox checked />
<text>默认选中</text>
</label>
</list-item>
</demo-block>
<demo-block title="禁用状态" padding="0">
<list-item className="demo-item">
<label>
<checkbox disabled checked/>
<text>禁用状态</text>
</label>
</list-item>
</demo-block>
<demo-block title="自定义图标" padding="0">
<list-item className="demo-item demo-item-icon">
<label>
<checkbox icon="SmileOutline" checkedIcon="SmileFill"/>
<text>自定义图标(Icon)</text>
</label>
</list-item>
<list-item className="demo-item demo-item-image">
<label>
<checkbox color="transparent" checked checkedIcon="https://gw.alipayobjects.com/mdn/rms_ffbcbf/afts/img/A*2oqcRL38fWwAAAAAAAAAAAAAARQnAQ"/>
<text>自定义图标(图片)</text>
</label>
</list-item>
</demo-block>
</view>
index.js 的代码示例如下:
Page({
data: {
checked: false,
},
handleChange(v) {
my.showToast({
content: `当前 checkbox 状态为: ${v ? '选中' : '未选中'} 状态。`,
duration: 1000,
});
},
handleChangeControlledValue() {
this.setData({ checked: !this.data.checked });
},
});
index.acss 的代码示例如下:
.demo-item label {
display: flex;
align-items: center;
line-height: 1;
}
label > text {
padding-left: 12rpx;
}
index.json 的代码示例如下:
{
"defaultTitle": "CheckBox",
"usingComponents": {
"checkbox": "antd-mini/es/Checkbox/index",
"list": "antd-mini/es/List/index",
"list-item": "antd-mini/es/List/ListItem/index",
"demo-block": "../../components/DemoBlock/index",
"button": "antd-mini/es/Button/index"
}
}