表单组件版本 0.1.0

MultiSelect 多选器

从可搜索候选列表中选择多个值,并以可移除标签展示结果。

使用概览

适合使用

  • 团队、角色或分类允许多选且候选项数量较多时。

不建议使用

  • 只能选择一个值,或选择顺序与重复次数具有业务含义时。

真实示例

负责团队多选

选择一个或多个团队并允许逐项移除。

正在加载示例…

安装

本地候选警告Registry 地址仅指向当前本地文档站;npm 包也只用于本地候选验证,尚未公开发布。
pnpm dlx shadcn@4.16.0 add http://127.0.0.1:3000/r/multi-select.json

基础用法

导入

import { MultiSelect } from "@richardqiu/quartz/multi-select";

JSX

<MultiSelect aria-label="负责团队" emptyText="没有匹配团队" options={[{ label: "设计", value: "design" }, { label: "工程", value: "engineering" }]} defaultValue={["design"]} removeLabel={(label) => `移除 ${label}`} />

状态与控制摘要

默认
键盘焦点可见
已打开
已选择
空状态
已禁用
label · textactive · boolean

API 参考

属性类型默认值说明
valuereadonly string[][]受控提供当前选择的所有候选值。

组合结构

  1. 01MultiSelect

键盘约定

  • 方向键浏览选项,Enter 选择;查询为空时 Backspace 移除最后一个值。

可访问性契约

  • 每个已选值都要提供由使用方命名的移除按钮。
  • 隐藏原生值只负责表单提交,不接管远程状态。