Skip to content

CodeInput 验证码输入框

基础用法

  • 验证码/短信码/支付密码输入框,由若干独立单元格组成,输入一位自动跳下一格,支持整段粘贴自动分配。
  • mode 可选方格(box)与下划线(line)两种样式;format 限制输入字符并可自动弹出对应键盘。
  • 当前激活单元格高亮并显示闪烁光标;mask 开启后以掩码图标占位,适合支付密码场景。
  • 输入满 length 位时触发 finish 事件;对外提供 focus / blur / clear 方法。
vue
<template>
	<sn-code-input v-model="code" :length="6" format="number" @finish="onFinish"></sn-code-input>
</template>

<script lang="uts" setup>
const code = ref<string>('')

function onFinish(value: string): void {
	console.log(value)
}
</script>

更多演示请下载 demo 查看

下划线模式与掩码

mode="line" 切换为底部横线风格;mask 开启后已输入的字符以掩码图标显示,事件回调仍返回真实值。

vue
<template>
	<sn-code-input v-model="pwd" :length="6" format="number" mode="line" :mask="true"></sn-code-input>
</template>

<script lang="uts" setup>
const pwd = ref<string>('')
</script>

聚焦与清空

通过 ref 调用 focus / clear 方法,外部控制输入状态。

vue
<template>
	<sn-code-input ref="codeRef" v-model="code" :length="4"></sn-code-input>
</template>

<script lang="uts" setup>
const code = ref<string>('')
const codeRef = ref<SnCodeInputComponentPublicInstance | null>(null)

function doFocus(): void {
	codeRef.value?.$callMethod('focus')
}

function doClear(): void {
	codeRef.value?.$callMethod('clear')
}
</script>

属性

参数说明类型默认值可选值
v-model绑定值String''-
length验证码位数,最小为 1String | Number6-
mode单元格样式Stringboxbox | line
format允许输入的字符类型,number 时自动弹出数字键盘,非法字符会被自动过滤Stringmixedmixed | number | letter
mask是否以掩码图标显示已输入字符Booleanfalsetrue | false
maskIcon掩码图标名称,mask 为 true 时生效Stringcircle-fill-
size单个单元格尺寸,最小 20pxString | Number40px-
space单元格间距String | Number5px-
borderRadius单元格圆角大小String | Number12px-
borderWidth单元格边框宽度String | Number2-
textSize字符字体大小String | Number$22-
textColor字符颜色String''(默认主题 text 色)-
caretSize光标大小String | Number$14-
caretColor光标颜色String''(默认主题 primary 色)-
borderColor未填充单元格边框颜色String''(默认主题 line 色)-
activeColor已填充与激活单元格的边框颜色String''(默认主题 primary 色)-
bgColor单元格背景颜色String''(默认主题 front 色)-
activeBgColor激活单元格背景颜色String''(默认主题 primaryLight 色)-
focus是否自动聚焦Booleanfalsetrue | false
adjustPosition键盘弹起时是否自动上推页面Booleantruetrue | false
disabled是否禁用Booleanfalsetrue | false
customStyle自定义根节点样式UTSJSONObject | String''-
customClass根节点外部类String''-
itemStyle自定义单元格样式UTSJSONObject | String''-
itemClass单元格外部类String''-
textStyle自定义字符样式UTSJSONObject | String''-
textClass字符外部类String''-
caretStyle自定义光标样式UTSJSONObject | String''-
caretClass光标外部类String''-

事件

名称类型说明
input(event: UniInputEvent) => Void键盘输入时触发
change(value: string) => Void绑定值变化时触发,参数为当前值
finish(value: string) => Void输入满 length 位时触发,参数为完整验证码
focus(event: UniInputFocusEvent) => Void聚焦时触发
blur(event: UniInputBlurEvent) => Void失去焦点时触发

方法

名称参数返回值描述
focus--使输入框聚焦,光标定位到末尾
blur--使输入框失去焦点
clear--清空输入内容并触发 change 事件

使用 MIT 协议