Skip to content

FxInputOtp 一次性密码输入框

用于输入一次性密码(OTP,如短信验证码)。不依赖任何 UI 框架,支持自定义长度、密码遮罩、分隔符、自定义校验,以及 outlined / filled / underlined 三种类型。

基础用法

自定义长度

通过 length 属性自定义输入字段数量。

类型

提供三种类型:outlined(默认)、filledunderlined

尺寸

提供三种尺寸:largedefaultsmall

禁用与只读

支持禁用与只读状态。

密码模式

通过 mask 属性隐藏输入字符。

分隔符

自定义字段间的分隔符,支持字符串、VNode 或按索引返回的函数,也可用 separator 插槽自定义。

自定义校验

通过 validator 属性校验输入字符,配合 inputmode 指定虚拟键盘类型。

API

Attributes

属性说明类型默认值
model-value (v-model)绑定值。由于数字不能有前导零,modelValue 仅在初始化时允许为 numberstring / number
length输入字段数量number6
validator自定义校验函数(char: string, index: number) => boolean() => true
inputmode原生 inputmode(用于调起对应虚拟键盘)string
type输入框类型'outlined' | 'filled' | 'underlined'outlined
size尺寸'large' | 'default' | 'small'
mask是否开启密码模式(隐藏字符)boolean
disabled是否禁用boolean
separator字段间的分隔符string / VNode / (index: number) => string | VNode
validate-event是否在 blur / 值变化时触发表单项校验booleantrue
readonly同原生 input 的 readonlybooleanfalse
id原生 idstring
aria-label原生 aria-labelstring

Events

事件名说明类型
update:model-value值更新时触发(value: string) => void
change失焦且值变化时触发(value: string) => void
finish所有字段填满时触发(value: string) => void
focus聚焦时触发(event: FocusEvent) => void
blur失焦时触发(event: FocusEvent) => void

Slots

插槽名说明类型
separator字段间的分隔符内容{ index: number }

Exposes

名称说明类型
inputRefsHTML input 元素数组Ref<(HTMLInputElement | undefined)[]>
focus聚焦指定输入框(index?: number) => void
blur失焦当前聚焦的输入框() => void