跳到主要内容
界面图谱Interface Atlas
☰
EN
组件Form / Input

多选框组

Multi-select

别名:多选多选下拉可多选的选择框多选框multi select

这是什么

允许从一组选项中挑选多个值,并以标签形式回显已选集合的选择控件。与单选下拉不同,展开面板在选择后保持打开,已选项可逐个移除;适合标签、权限、筛选条件等需要累积多个值的表单场景。选项很多时应配合搜索。

名词辨析

「多选」口语上也可能指 checkbox 复选框本身;本词条专指带列表与标签回显的组合选择控件。

交互实验室

试一试,再决定怎么用

用鼠标和键盘各完成一次多选与删除标签。

正在加载实验室…

使用时关注什么

  • 01每个已选项可单独移除
  • 02空状态或搜索无结果时有提示

✓ 适用场景

  • 需要一次提交多个值,如标签、权限、筛选条件
  • 已选项需要随时可见并可单独删除
  • 选项集合固定,且可能较多、需要搜索或分组

✕ 不适用场景

  • 只能选一个值,用 select 或 combobox 更准确
  • 选项少于 5 个且无需回显,平铺 checkbox 更快
  • 值由用户自由创造而非从列表挑选,用 tag-input

常见形式

标签回显

Chip echo

已选项以可删除标签排布在控制区内,最常见形态

复选列表

Checkbox list

选项平铺为复选框组,所见即所得

双列表

Dual listbox

左右两个列表加转移按钮,适合大量已选项的管理

实现要点

flex-wrapscroll

控制区用 flex-wrap 排布标签,高度随已选项增长;列表绝对定位在下方,max-height + overflow-y-auto 控制高度。选择不关闭面板,Escape 收起,点击外部关闭。键盘在选项间移动并用 aria-selected 标注,标签的删除按钮需可聚焦。

平台 API

role="listbox"aria-multiselectablearia-selected

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
ARIA APGListbox (multi-select)
shadcn/uiCombobox (multiple)
React SelectisMulti

相关概念

容易混淆

下拉选择Select

select 是互斥单选,多选框组累积多个值并以标签回显

可搜索选择框Combobox

combobox 强调输入检索并提交单值,多选框组强调集合管理

可搭配的风格

参考来源

Markdown 版(给 Agent) · JSON