InputOtp OTP 输入框 beta
用于输入一次性密码 (OTP)。
基础用法
自定义长度
可以通过设置 length 属性来调节输入框的长度。
类型
有三种类型可选:outlined(默认)、filled 和 underlined。
尺寸
有三种尺寸可选:large、default 和 small。
禁用与只读
支持禁用和只读状态。
掩码
使用 mask 属性来隐藏输入字符。
分隔符
自定义 OTP 字段之间的分隔符。
自定义校验
设置 validator 属性来校验输入字符,并使用 inputmode 指定键盘类型。
API
属性
| 名称 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| model-value / v-model | OTP 字段的值。由于数字不能有前导零,modelValue 仅在初始化期间允许为数字类型。 | string / number | undefined |
| length | OTP 字段的长度 | number | 6 |
| validator | 自定义校验函数 | Function | () => true |
| inputmode | 原生 inputmode 属性 | string | — |
| type | OTP 字段的类型 | 枚举 | 'outlined' |
| size | OTP 字段的尺寸 | 枚举 | 'default' |
| mask | 是否启用密码模式 | boolean | — |
| disabled | 是否禁用 OTP 字段 | boolean | undefined |
| separator | OTP 字段之间的分隔符 | string / VNode / Function | — |
| validate-event | 是否触发表单校验 | boolean | true |
| 只读 | 与原生 input 的 readonly 属性相同 | boolean | false |
| id | 原生 id 属性 | string | — |
| aria-label 无障碍 | 原生 aria-label 属性 | string | — |
事件
| 名称 | 描述 | 类型 |
|---|---|---|
| update:modelValue | 当值更新时触发 | Function |
| change | 在输入框失去焦点后,当值发生改变时触发 | Function |
| finish | 当所有字段都填满时触发 | Function |
| focus | 当输入框获得焦点时触发 | Function |
| blur | 当输入框失去焦点时触发 | Function |
插槽
| 名称 | 描述 | 类型 |
|---|---|---|
| separator | OTP 字段之间的分隔符 | object |
暴露
| 名称 | 描述 | 类型 |
|---|---|---|
| inputRefs | HTML input 元素数组 | object |
| focus | 使 OTP 输入框获得焦点 | Function |
| blur | 使获得焦点的 OTP 输入框失去焦点 | Function |