下拉选择
FormSelect输入与选择触发器下方展开选项面板,键盘上下移动、回车确认、Esc 关闭并把焦点还给触发器。选项多于 8 个时顶部出现筛选框;不可用的项保留但变淡并说明原因。
属性
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
value | Signal<T> | 必填 | 当前选中的值。 |
options | Signal<Vec<(T, L)>> | 必填 | 选项值与显示文本。 |
disabled_options | Signal<Vec<(T, &'static str)>> | 空 | 不可用的项及原因,变淡并写明原因,键盘与点击都跳过。 |
onchange | Callback<T> | 必填 | 返回选择的新值。 |
id | MaybeProp<String> | 自动生成 | 关联表单标签。 |
trigger_class | Option<&'static str> | 默认样式 | 覆盖触发器样式。 |
aria_label | Option<&'static str> | None | 触发器的无障碍名称。 |
键盘
- ↑ ↓
- 移动选项
- Enter
- 确认选择
- Escape
- 关闭面板
用法
src/components/forms.rslet topic = RwSignal::new("all".to_string());
view! {
<FormSelect
value=topic
options=vec![("all".to_string(), "\u5168\u90E8"), ("design".to_string(), "\u8BBE\u8BA1")]
onchange=move |: String| topic.set(value)
/>
}