Skip to content

Props とイベント

<OtpInput> コンポーネントの完全な API リファレンス。

Props

コア

Propデフォルト説明
modelValuestring''OTP 値の v-model バインディング
numInputsnumber6入力フィールドの数
inputType'number' | 'tel' | 'letter-numeric' | 'password''tel'入力バリデーションタイプ
inputmodestring'numeric'仮想キーボード用の HTML inputmode

外観

Propデフォルト説明
themeOtpTheme'box'ビジュアルテーマ(テーマ参照)
variant'default' | 'primary' | 'success' | 'danger' | 'warning''default'カラーバリアント
size'sm' | 'md' | 'lg' | 'xl''md'入力サイズ
placeholderstring | string[]''プレースホルダー
separatorstring''入力間に表示する HTML

状態

Propデフォルト説明
shouldAutoFocusbooleanfalseマウント時に最初の入力にオートフォーカス
shouldFocusOrderbooleanfalse順次入力を強制
disabledbooleanfalseすべての入力を無効化
readonlybooleanfalse読み取り専用モード
errorbooleanfalseエラー状態(シェイクアニメーション)
successbooleanfalse成功状態(パルスアニメーション)

イベント

イベントペイロード説明
update:modelValuestring変更ごと(v-model サポート)
changestring文字変更ごと
completestringすべての入力が埋まった時

公開メソッド

テンプレート ref でアクセス:

vue
<script setup>
const otpRef = ref(null)

otpRef.value?.clear()        // すべてクリアし最初にフォーカス
otpRef.value?.fill('123456') // すべての入力を埋める
otpRef.value?.focus()        // 最初の入力にフォーカス
otpRef.value?.focusInput(3)  // インデックスで特定の入力にフォーカス
</script>

<template>
  <OtpInput ref="otpRef" />
</template>
メソッド引数説明
clear()すべてクリアし最初にフォーカス
fill(value)string値で入力を埋める
focus()最初の入力にフォーカス
focusInput(index)numberインデックスで特定の入力にフォーカス

TypeScript

すべての型がエクスポートされています:

ts
import type {
  OtpInputProps, OtpInputExpose, OtpInputType,
  OtpTheme, OtpVariant, OtpSize,
} from 'vue-otp-pro'