CheckboxMultiselect 复选组
复选组:若干复选项排成一组,可同时选中多项。
基本用法
选中值是数组,走 value / defaultValue / onChange 三条通道,onChange 携带完整的值数组。传 name 时每个选项的 checkbox 同名,勾选项随表单以多个同名字段提交。
当前选中:banana
Shift+点击范围选择
先点击一项,再按住 Shift 点击另一项:两次点击之间的 区间(含两端)统一置为后一项翻转后的状态,区间内的禁用项保持原状。这对应表格列表里批量勾选的场景。
当前选中:(无)
先点击一项,再按住 Shift 点击另一项,观察范围选择
与 FieldLayout 配合
给整组加字段标签时,用 FieldLayout 包裹。点击字段标签会把焦点移到首个可用选项的复选框上(不像复选框那样直接切换勾选——组内没有「整组一个值」的语义)。
禁用
- 选项对象自己的
disabled禁用该项(跳过、不可勾选)。 - 组件级
disabled会一并禁用组内全部选项,且组禁用优先。详见选择与选项 · 禁用。
键盘与焦点
- 每个选项的原生
<input type="checkbox">都在 Tab 序中;↑↓←→ 提供组内快捷移动——在非禁用项之间环绕移动焦点(与RadioSelect不同,只移动焦点、不直接改选),空格切换当前项勾选。 Shift+点击的范围选择以「上一次点击(或空格切换)的项」为起点。onChange的第二个参数是触发本次变化的原生change事件。- 选项根元素带
role='checkbox'与aria-checked(原版选项根无 role、仅以选中类表达),读屏器可直接读到各选项状态。
API
另见
- 选项数据与键盘焦点模型:选择与选项
- 单个复选框:CheckboxInput
- 随表单提交的复选组字段:
CheckboxMultiselectInput