Input 输入框
原生 <input> 增强的基础输入组件。
基础用法
基础用法
无障碍名称(label)
label(可访问名称)
label 作为输入框的可访问名称(aria-label)来源,读屏朗读该名称。未设置 label 时依次回退 placeholder → 内置文案「输入框」;设置后(如「登录邮箱」)覆盖回退链。
类型
type
type 透传原生 input 类型,支持 text / password / number / email 等。
密码可见切换
show-password
show-password 在 type="password" 时于输入框右侧渲染眼睛按钮,点击在明文/密文间切换;按钮带 aria-label(locale 文案)与 aria-pressed,聚焦时有焦点环。
可清空
可清空(clearable)
存在内容且设置 clearable 时显示清除按钮,点击后清空并聚焦,派发 oas-clear。
禁用与只读
disabled / readonly
前后缀(addon)
addon-before / addon-after
addon-before / addon-after 为输入框外侧的 addon 文案块(如单位、域名),分别走独立的 ::part(prepend) / ::part(append),禁用时 addon 灰化。
图标
prefix-icon / suffix-icon
prefix-icon / suffix-icon 接受图标名(@oas-isui/icons 的 iconRegistry),内联渲染 SVG 装饰图标。
内嵌前后缀与清空并存
prefix / suffix + clearable
prefix / suffix 为输入框内部文案,与 clearable、图标、addon 可并存不冲突。
字数统计
show-count + maxlength
show-count 在输入框右下角显示字数统计:设置 maxlength 时显示 当前长度/maxlength,未设置时仅显示当前长度;maxlength 同时透传原生 input 限制输入长度。超过限制时计数数字变 danger 色。
回车提交事件
oas-enter
输入时按 Enter(非输入法组合上屏)派发 oas-enter,detail: { value }。
事件
输入与清除事件
监听 oas-input(输入中)与 oas-clear(清除):
API
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
addon-after | 后置 addon 文案块 | string | — |
addon-before | 前置 addon 文案块 | string | — |
clearable | 可清空 | boolean | — |
disabled | 禁用 | boolean | — |
label | 可访问名称(aria-label 来源,未设时回退 placeholder → 内置文案「输入框」) | — | — |
maxlength | 最大输入长度(透传原生 maxlength) | string | — |
placeholder | 占位提示 | string | — |
prefix | 内嵌前置文案 | string | — |
prefix-icon | 前置图标名 | string | — |
readonly | 只读 | boolean | — |
show-count | 显示字数统计(右下角,超限标 danger) | boolean | — |
show-password | 密码可见切换(type="password" 时渲染眼睛按钮) | boolean | — |
suffix | 内嵌后置文案 | string | — |
suffix-icon | 后置图标名 | string | — |
type | 原生 input 类型 | string | text |
value | 值(受控) | string | — |
事件
| 事件 | 说明 |
|---|---|
oas-clear | 点击清除,detail: { originalEvent } |
oas-enter | 按 Enter(非输入法组合),detail: { value } |
oas-input | 输入中,detail: { value } |