下拉选择

FormSelect输入与选择

触发器下方展开选项面板,键盘上下移动、回车确认、Esc 关闭并把焦点还给触发器。选项多于 8 个时顶部出现筛选框;不可用的项保留但变淡并说明原因。

预览

属性

名称类型默认值说明
valueSignal<T>必填当前选中的值。
optionsSignal<Vec<(T, L)>>必填选项值与显示文本。
disabled_optionsSignal<Vec<(T, &'static str)>>空不可用的项及原因,变淡并写明原因,键盘与点击都跳过。
onchangeCallback<T>必填返回选择的新值。
idMaybeProp<String>自动生成关联表单标签。
trigger_classOption<&'static str>默认样式覆盖触发器样式。
aria_labelOption<&'static str>None触发器的无障碍名称。

键盘

↑ ↓
移动选项
Enter
确认选择
Escape
关闭面板

用法

src/components/forms.rs
Leptos view!
let topic = RwSignal::new("all".to_string());

view! {
    <FormSelect
        value=topic
        options=vec![("all".to_string(), "\u5168\u90E8"), ("design".to_string(), "\u8BBE\u8BA1")]
        onchange=move |value: String| topic.set(value)
    />
}