PinInput

维护者:
amje
GitHub
size
type
length
placeholder
note
validationState
errorMessage
disabled
otp
mask
import {PinInput} from '@gravity-ui/uikit';

PinInput 是一组用于快速输入数字或字母数字值序列的输入。它最常见的用例是输入通过短信 (SMS)、电子邮件或身份验证器应用程序收到的 OTP 或确认码。

每个输入一次收集一个字符。当一个值被接受时,焦点将移至下一个输入,直到所有字段都填充完毕。

类型

默认情况下,输入仅接受数值。要允许使用字母数字值,请将该 type 属性设置为: "alphanumeric"

<PinInput type="alphanumeric" />

大小

该组件有四种尺寸: s ml 、和 xl。默认大小为 m

<PinInput size="s" />
<PinInput size="m" />
<PinInput size="l" />
<PinInput size="xl" />

如果你不希望用户与组件交互,请设置该 disabled 属性:

<PinInput disabled />

要显示组件的无效状态,请使用带有 "invalid" 值的 validationState 属性。或者,您可以使用以下 errorMessage 属性设置错误消息文本:

Incorrect PIN
<PinInput validationState="invalid" errorMessage="Incorrect PIN" />

占位符

默认情况下,输入没有占位符。你可以用这个 placeholder 属性来设置它:

<PinInput placeholder="😎" />

面具

如果需要掩盖输入的值,请使用该 mask 属性。它与 <input type="password"/> 行为类似。

<PinInput mask />

OTP

如果你想让浏览器推荐来自外部环境(例如 SMS)的一次性代码,请设置该 otp 属性。

API

  • focus(): void:将焦点设置为当前活动输入。

CSS API

姓名描述
--g-pin-input-item-width设置每个输入的宽度,除非 responsivetrue
--g-pin-input-item-gap设置输入之间的间隔。

属性

姓名描述类型默认
apiRef请参阅 APIReact.RefObject
咏叹调描述者aria-describedby HTML 属性string
aria-labelaria-label HTML 属性string
aria-labelledbyaria-labelledby HTML 属性string
autoFocus启用或禁用对初始渲染时第一个输入的聚焦。boolean
classNameclass HTML 属性string
defaultValue不受控组件的初始值。string[]
残疾的切换 disabled 状态boolean
errorMessage错误文本位于底部起始角下方,与笔记容器共享空间。仅在设置 validationState 为时可见 "invalid"React.ReactNode
idid 输入的 HTML 属性前缀。生成的 ID 也将包含该 "-${index}" 部件。string
长度输入字段的数量。number4
面具设置为时 true ,输入值将被掩盖为密码字段。boolean
名称name 用于输入的 HTML 属性。string
表格基础输入元素的关联形式。string
便条放置在底角下方的元素,与错误容器共享空间。React.ReactNode
onUpdate当任何输入发生变化时都会触发回调。(value: string[]) => void
onUpdateComplete当任何输入发生变化且全部填充时,回调就会触发。(value: string[]) => void
OTP设置为时 true ,将 autocomplete="one-time-code" 添加到输入中。boolean
占位符输入的占位符string
qadata-qa 用于测试目的的 HTML 属性。string
响应父项的宽度在输入之间均匀分布。boolean
尺寸输入字段大小。"s" "xl""m"
风格style HTML 属性React.CSSProperties
类型确定允许哪些输入值类型。"numeric" "alphanumeric""numeric"
validationState影响组件外观的验证状态。"invalid"
价值受控组件的当前值。string[]
onFocus当组件获得焦点时触发回调。(活动:react.focusEvent<Element>) = 无效>
onBlur当组件失去焦点时触发回调。(活动:react.focusEvent<Element>) = 无效>