---
url: /components/select.md
---
# Select 选择器

> 移动端：下拉 popper 改为底部选择面板，参见 [移动端 · 数据录入](/mobile/data-entry)。

下拉选择控件：Option 挂载时向 Select 注册，支持单选 / 多选、可搜索与自定义过滤、远程搜索、允许创建、折叠标签、选项分组与键盘导航（上下键高亮、Enter 选中、Esc 关闭、Backspace 删除多选末项）。

## 基础用法

单选时绑定值为选中项的 value；clearable 默认关闭，开启后有选中值时展示清空按钮，单选点击清空为空串、多选清空为空数组，并触发 clear 事件。

## 多选与折叠标签

multiple 时绑定值为数组，选中项以可关闭的 tag 呈现，选择后下拉保持打开；collapse-tags 只展示前 max-collapse-tags 个 tag（默认 1），其余折叠为 + N 计数，避免撑高筛选区。

## 选中数上限

max-count 限定多选最多可选中数量：达到上限后其余选项呈置灰态、点击被拦截，已选标签可照常移除，移除后立即恢复可选；0 表示不限。

## 可搜索

filterable 开启后可在输入框中按 label 关键字过滤选项；需要按拼音、编码等自定义规则过滤时传 filter-method（(query, option) => boolean 返回是否保留）。

## 允许创建

allow-create 配合 filterable：搜索无匹配项时把当前输入作为临时选项出现在下拉首位，回车选中后写入绑定值，适合标签、备注类自由输入。

## 远程搜索

remote 声明远程模式：键入时调用 remote-method(query) 拉取选项（示例做了 400ms 防抖），loading 期间下拉展示加载文案，常用于大数据量字典搜索。

## 数据模式与虚拟滚动

传 `options` 数组即进入数据模式：无需手写 eb-option，下拉由组件直接渲染；再叠加 `virtual` 开启虚拟滚动——万级选项只渲染可视窗口，滚动、键盘、过滤全程流畅。

## 选项分组

eb-option-group 以 label 作为分组标题，把选项按业务维度归组，长列表更易扫读。

## 对象值形态

label-in-value 开启后绑定值形如 { value, label }（multiple 时为对象数组），业务侧免于二次反查文案；回显同时兼容基础值与对象两种形态，清空仍回落为空串 / 空数组。

## 下拉面板自定义区块

popup-render 插槽在选项列表之后、下拉面板底部追加自定义区块（对齐 antd 的 dropdownRender 语义），常用于「+ 新增」一类入口；点击区块内元素默认不会关闭下拉。

## 尺寸与禁用

size 支持 large / small；disabled 禁用整个选择器，单个 option 设置 disabled 则该项不可选（呈置灰态）。

## API

## 移动端适配

容器环境为 mobile 时（优先级：ConfigProvider `platform` > 全局 `setPlatform()` > 自动探测：视口 ≤ 768px 或触屏设备），选择器不再渲染浮动下拉，而是**底部弹出选择面板**（带遮罩、圆角、安全区适配），点选即回填并关闭；桌面环境保持原形态。下方演示通过 `platform="mobile"` 强制移动形态（无论当前设备）：
