import{o as t,a,y as n}from"./vue-libs.b44bc779.js";const e={class:"van-doc-markdown-body"},l=n(`

NumberKeyboard

Intro

The NumberKeyboard component can be used with PasswordInput component or custom input box components.

Install

Register component globally via app.use, refer to Component Registration for more registration ways.

import { createApp } from 'vue';
import { NumberKeyboard } from 'vant';

const app = createApp();
app.use(NumberKeyboard);

Usage

Default Keyboard

<van-cell @touchstart.stop="show = true">Show Keyboard</van-cell>
<van-number-keyboard
  :show="show"
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>
import { ref } from 'vue';
import { Toast } from 'vant';

export default {
  setup() {
    const show = ref(true);
    const onInput = (value) => Toast(value);
    const onDelete = () => Toast('delete');

    return {
      show,
      onInput,
      onDelete,
    };
  },
};

Keyboard With Sidebar

<van-number-keyboard
  :show="show"
  theme="custom"
  extra-key="."
  close-button-text="Close"
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>

IdNumber Keyboard

Use extra-key prop to set the content of bottom left button.

<van-cell plain type="primary" @touchstart.stop="show = true">
  Show IdNumber Keyboard
</van-cell>

<van-number-keyboard
  :show="show"
  extra-key="X"
  close-button-text="Close"
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>

Keyboard With Title

Use title prop to set keyboard title.

<van-cell plain type="primary" @touchstart.stop="show = true">
  Show Keyboard With Title
</van-cell>
<van-number-keyboard
  :show="show"
  title="Keyboard Title"
  extra-key="."
  close-button-text="Close"
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>

Multiple ExtraKey

<van-cell plain type="primary" @touchstart.stop="show = true">
  Show Keyboard With Multiple ExtraKey
</van-cell>
<van-number-keyboard
  :show="show"
  theme="custom"
  :extra-key="['00', '.']"
  close-button-text="Close"
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>

Random Key Order

Use random-key-order prop to shuffle the order of keys.

<van-cell @touchstart.stop="show = true">
  Show Keyboard With Random Key Order
</van-cell>
<van-number-keyboard
  :show="show"
  random-key-order
  @blur="show = false"
  @input="onInput"
  @delete="onDelete"
/>

Bind Value

<van-field v-model="value" readonly clickable @touchstart.stop="show = true" />
<van-number-keyboard
  v-model="value"
  :show="show"
  :maxlength="6"
  @blur="show = false"
/>
import { ref } from 'vue';

export default {
  setup() {
    const show = ref(true);
    const value = ref('');
    return {
      show,
      value,
    };
  },
};

API

Props

AttributeDescriptionTypeDefault
v-modelCurrent valuestring-
showWhether to show keyboardboolean-
titleKeyboard titlestring-
themeKeyboard theme, can be set to customstringdefault
maxlengthValue maxlengthnumber | stringInfinity
transitionWhether to show transition animationbooleantrue
z-indexKeyboard z-indexnumber | string100
extra-keyContent of bottom left keystring | string[]''
close-button-textClose button textstring-
delete-button-textDelete button textstringDelete Icon
close-button-loadingWhether to show loading close button in custom themebooleanfalse
show-delete-keyWhether to show delete buttonbooleantrue
blur-on-close v3.0.6Whether to emit blur event when clicking close buttonbooleantrue
hide-on-click-outsideWhether to hide keyboard when outside is clickedbooleantrue
teleportSpecifies a target element where NumberKeyboard will be mountedstring | Element-
safe-area-inset-bottomWhether to enable bottom safe area adaptationbooleantrue
random-key-orderWhether to shuffle the order of keysbooleanfalse

Events

EventDescriptionArguments
inputEmitted when a key is pressedkey: string
deleteEmitted when the delete key is pressed-
closeEmitted when the close button is clicked-
blurEmitted when the close button is clicked or the keyboard is blurred-
showEmitted when keyboard is fully displayed-
hideEmitted when keyboard is fully hidden-

Slots

NameDescription
deleteCustom delete key content
extra-keyCustom extra key content
title-leftCustom title left content

Types

The component exports the following type definitions:

import type { NumberKeyboardProps, NumberKeyboardTheme } from 'vant';

Theming

CSS Variables

The component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.

NameDefault ValueDescription
--van-number-keyboard-background-colorvar(--van-gray-2)-
--van-number-keyboard-key-height48px-
--van-number-keyboard-key-font-size28px-
--van-number-keyboard-key-active-colorvar(--van-gray-3)-
--van-number-keyboard-key-background-colorvar(--van-white)-
--van-number-keyboard-delete-font-sizevar(--van-font-size-lg)-
--van-number-keyboard-title-colorvar(--van-gray-7)-
--van-number-keyboard-title-height34px-
--van-number-keyboard-title-font-sizevar(--van-font-size-lg)-
--van-number-keyboard-close-padding0 var(--van-padding-md)-
--van-number-keyboard-close-colorvar(--van-text-link-color)-
--van-number-keyboard-close-font-sizevar(--van-font-size-md)-
--van-number-keyboard-button-text-colorvar(--van-white)-
--van-number-keyboard-button-background-colorvar(--van-primary-color)-
--van-number-keyboard-z-index100-
`,18),d=[l],i={__name:"README",setup(o,{expose:s}){return s({frontmatter:{}}),(p,c)=>(t(),a("div",e,d))}};export{i as default};