Skip to content

Keyboard 键盘

iPhone

此组件自定义的键盘面板,内含了数字键盘,车牌号键,身份证号键盘3种模式,都有可以打乱按键顺序的选项。

平台差异说明

APPH5微信小程序支付宝小程序QQ小程序···
适配中

代码示例

部分功能示例,具体可参考示例程序以及文档API。

基础用法

通过 ref 获取到组件实例,调用 open 方法显示键盘面板,调用 close 方法隐藏键盘面板。

通过 mode 属性定义键盘的类型,可选值:

  • number (默认值)为数字键盘,此时顶部工具条中间的提示文字为"数字键盘"
  • card 为身份证键盘,此时顶部工具条中间的提示文字为"身份证键盘"
  • car 为车牌号键盘,此时顶部工具条中间的提示文字为"车牌号键盘"
html
<template>
    <fu-keyboard ref="keyboardRef"></fu-keyboard>

    <fu-button @click="handleOpen">打开</fu-button>
</template>

<script setup>
    import { ref } from 'vue';

    // data数据
    const keyboardRef = ref();

    // methods方法
    const handleOpen = () => {
        keyboardRef.value.open();
    };
</script>

设置键盘顶部的工具条

  • 通过 tooltip 属性设置是否显示顶部的工具条,默认为 true
  • 通过 tips 属性修改工具条中间的提示文字
  • 通过 showTips 属性控制是否显示工具条中间的文字
  • 通过 showCancel 属性控制是否显示工具条左边的"取消"按钮
  • 通过 showConfirm 属性控制是否显示工具条右边的"确定"按钮
html
<fu-keyboard ref="keyboardRef" mode="car" tips="请输入车牌号" :showCancel="false"></fu-keyboard>

设置是否显示键盘的点(".")按键

通过 dotDisabled 属性设置是否显示点按键,默认为 true,只有在 modenumber 时才生效,因为车牌号和身份证键盘,用不到"."这个按键。

html
<fu-keyboard ref="keyboardRef" mode="number" :dotDisabled="false"></fu-keyboard>

设置是否打乱按键顺序

通过 random 属性设置为 true 时,每次打开键盘,按键的顺序都是随机的,默认为 false

html
<fu-keyboard ref="keyboardRef" mode="number" :random="true"></fu-keyboard>

如何监听键盘按键被点击?

  • 输入值是通过组件的 change 事件实现的,组件内部每个按键被点击的时候,组件会触发 change 事件,并将当前输入值作为参数传递给回调函数。
  • 通过 backspace 事件监听键盘退格键的点击,通过修改父组件的值实现退格的效果。

注意:点击退格键(即删除键)不会触发 change 事件

html

<template>
    <fu-keyboard ref="keyboardRef" @change="handleChange"></fu-keyboard>

    <fu-button @click="handleOpen">打开</fu-button>
</template>

<script setup>
    import { ref } from 'vue';

    // data数据
    const keyboardRef = ref();
    let value = ref('');

    // methods方法
    const handleOpen = () => {
        keyboardRef.value.open();
    };

    // 按键被点击(点击退格键不会触发此事件)
    const handleChange = (val) => {
        // 将每次按键的值拼接到value变量中,注意+=写法
        value.value += val;
        console.log(value.value);
    };

    // 退格键被点击
    const handleBackspace = () => {
        // 删除value变量最后一个字符
        if(value.value.length) value.value = value.value.substr(0, value.value.length - 1);
        console.log(value.value);
    };
</script>

API

Keyboard Props

属性名说明类型默认值可选值
mode键盘类型,详见上方基础用法Stringnumbernumber/card/car
dotDisabled是否显示"."按键,只在mode=number时有效Booleanfalsetrue
tooltip是否显示键盘顶部工具条Booleantruefalse
showTips是否显示工具条中间的提示文字Booleantruefalse
tips工具条中间的提示文字,如不需要,请传""空字符String--
showCancel是否显示工具条左边的"取消"按钮Booleantruefalse
showConfirm是否显示工具条右边的"确定"按钮Booleantruefalse
random是否打乱按键顺序Booleanfalsetrue
safeArea是否开启底部安全区适配Booleantruefalse
isMaskClick是否开启蒙层点击关闭键盘Booleantruefalse
zIndex键盘层级String|Number1025-
cancelText工具条左边的"取消"按钮文字String取消-
confirmText工具条右边的"确定"按钮文字String确定-

Keyboard Events

事件名说明回调参数
change按键被点击(不包含退格键被点击)() => void
cancel工具条左边的"取消"按钮被点击-
confirm工具条右边的"确定"按钮被点击-
backspace退格键被点击-

Keyboard Slot

名称说明
default内容将会显示键盘的工具条上面,可以结合CodeInput 验证码输入组件实现类似支付宝输入密码时,上方显示输入内容的功能