返回介绍

开发指南

组件

JS

模板

Keyboard 键盘

发布于 2021-04-03 05:35:24 字数 6743 浏览 793 评论 0 收藏 0

Keyboard 键盘 平台差异说明
AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

通过mode参数定义键盘的类型,v-model绑定一个值为布尔值的变量控制键盘的弹出与收起:

  • mode = number (默认值)为数字键盘,此时顶部工具条中间的提示文字为"数字键盘"
  • mode = car 为汽车键盘,此时顶部工具条中间的提示文字为"车牌号键盘"
  • mode = card 为身份证键盘,此时顶部工具条中间的提示文字为"身份证键盘"
<template>
	<view>
		<u-keyboard ref="uKeyboard" mode="car" v-model="show"></u-keyboard>
		<u-button @click="show = true">打开</u-button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				show: false
			}
		}
	}
</script>

控制键盘顶部的工具条

  • 通过tooltip参数配置是否显示显示顶部的工具条,默认为true
  • 通过tips参数修改工具条中间的提示文字
  • 通过show-tips可以控制是否显示工具条中间的文字
  • 通过cancelBtn参数配置是否显示工具条左边的"取消"按钮
  • 通过confirmBtn参数配置是否显示工具条右边的"完成"按钮
<u-keyboard mode="car" tips="请输入车牌号" :cancelBtn="false"></u-keyboard>

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

该按键通过dot-enabled(默认为true)参数配置,只在"mode = number"时生效,因为车牌号和身份证键盘,用不到"."这个按键

<u-keyboard ref="uKeyboard" mode="number" :dot-enabled="false" v-model="show"></u-keyboard>

是否打乱按键的顺序

如果配置random参数为true的话,每次打开键盘,按键的顺序都是随机的,该功能默认是关闭的

<u-keyboard ref="uKeyboard" mode="number" :random="true" v-model="show"></u-keyboard>

如何控制键盘的打开和关闭?

通过v-model绑定一个值为布尔值的变量控制组件的弹出与收起,v-model的值是双向绑定的。

<template>
	<u-keyboard mode="number" v-model="show"></u-keyboard>
</template>

<script>
	export default {
		onReady() {
			// 如果想一进入页面就打开键盘,请在此生命周期调用
			this.show = true;
		},
		onLoad() {
			// 不应在此调用,因为此时u-keyboard组件尚未创建完成
			// this.show = true;
		}
	}
</script>

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

  • 输入值是通过组件的change事件实现的,组件内部每个按键被点击的时候,组件就会发出一个change事件,回调参数为点击的按键的值。
  • 通过backspace事件监听键盘退格键的点击,通过修改父组件的值实现退格的效果,见下方示例

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

<template>
	<u-keyboard mode="number" @change="valChange" @backspace="backspace" v-model="show"></u-keyboard>
</template>

<script>
	export default {
		data() {
			return {
				value: '',
				show: false
			}
		},
		methods: {
			// 按键被点击(点击退格键不会触发此事件)
			valChange(val) {
				// 将每次按键的值拼接到value变量中,注意+=写法
				this.value += val;
				console.log(this.value);
			},
			// 退格键被点击
			backspace() {
				// 删除value的最后一个字符
				if(this.value.length) this.value = this.value.substr(0, this.value.length - 1);
				console.log(this.value);
			}
		}
	}
</script>

是否显示遮罩

当您使用键盘时,可能会不想显示遮罩,这时可以配置mask参数为false即可

<u-keyboard mode="number" v-model="show" :mask="false"></u-keyboard>

API

Props

注意:props中没有控制键盘弹出与收起的参数,因为这是通过v-model绑定变量实现的,见上方说明。

参数说明类型默认值可选值
mode键盘类型,见上方基本使用的说明Stringnumbercar / card
dot-enabled是否显示"."按键,只在mode=number时有效Booleantruefalse
tooltip是否显示键盘顶部工具条Booleantruefalse
tips工具条中间的提示文字,见上方基本使用的说明String--
show-tips是否显示工具条中间的文字Booleantruefalse
cancel-btn是否显示工具条左边的"取消"按钮Booleantruefalse
confirm-btn是否显示工具条右边的"完成"按钮Booleantruefalse
mask是否显示遮罩Booleantruefalse
z-index弹出键盘的z-indexNumber | String1075-
random是否打乱键盘按键的顺序Booleanfalsetrue
safe-area-inset-bottom是否开启底部安全区适配Booleanfalsetrue
mask-close-able是否允许点击遮罩收起键盘Booleantruefalse
confirm-text 1.5.6确认按钮的文字String取消-
cancel-text 1.5.6取消按钮的文字String确认-

Events

事件名说明回调参数版本
change按键被点击(不包含退格键被点击)按键的值,见上方说明和示例-
cancel键盘顶部工具条左边的"取消"按钮被点击--
confirm键盘顶部工具条右边的"完成"按钮被点击--
backspace键盘退格键被点击--

Slot

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文