Skip to content
本页导读

Keyboard

组件类型:UxKeyboardComponentPublicInstance

支持数字键盘、字母键盘、计算器键盘、密码键盘、安全键盘、车牌键盘

平台兼容性

UniApp X

AndroidiOSweb鸿蒙 Next小程序
x

UniApp Vue Nvue

AndroidiOSweb鸿蒙 Next小程序
xxxx

Props

属性名类型默认值说明
themeStringprimary主题
modeStringnumber模式
showSubBooleantrue显示负号数字键盘有效
showPointBooleantrue显示点数字键盘有效
showNumBooleantrue显示数字键盘字母键盘有效
showSymbolBooleantrue显示标点符号字母键盘和密码键盘有效
showSapceBooleantrue等于false时,空格不起作用,但是占位还在
encryptBooleantrue加密显示安全键盘有效
verifyBooleantrue内容合理性校验
upperBooleanfalse保持字母大写显示字母键盘有效
scrollIdStringscoll-view或list-view的Id
adjustPositionString键盘弹起时滚动到目标Id需配置父级IDscrollId
maxLengthNumber-1不限制输入最大长度
inputSizeAny15输入内容大小
inputColorString#999输入内容颜色
inputDarkColorString深色none-不显示,auto-自动适配深色模式,其他-颜色
placeholderString占位内容
sizeAny20按钮文字大小
colorString#333按钮文字颜色
darkColorString深色none-不显示,auto-自动适配深色模式,其他-颜色
btnColorString按钮背景颜色
btnDarkColorString深色none-不显示,auto-自动适配深色模式,其他-颜色
confirmTextString确定按钮文字
confirmColorString确定按钮背景颜色
confirmDarkColorString深色none-不显示,auto-自动适配深色模式,其他-颜色
spaceTextString空格按钮文字
backgroundString背景颜色
backgroundDarkString深色none-不显示,auto-自动适配深色模式,其他-颜色
showCloseBooleantrue显示关闭按钮
radiusAny20圆角
opacityNumber0.2遮罩透明度0-1
touchableBooleanfalse允许滑动关闭
maskCloseBooleantrue遮罩层关闭
disabledBooleanfalse是否禁用

theme

说明
text文字
info默认
primary主要
success成功
warning警告
error错误

mode

说明
number数字键盘
letter英文字母键盘
calculator计算器键盘
safety安全键盘
platenumber车牌键盘

inputDarkColor

说明
none不显示
auto自动适配深色模式
color其他颜色

darkColor

说明
none不显示
auto自动适配深色模式
color其他颜色

btnDarkColor

说明
none不显示
auto自动适配深色模式
color其他颜色

confirmDarkColor

说明
none不显示
auto自动适配深色模式
color其他颜色

backgroundDark

说明
none不显示
auto自动适配深色模式
color其他颜色

touchable

说明
true
false

maskClose

说明
true
false

Events

事件名说明参数
change输入时触发
confirm确定时触发
close关闭时触发
overlimit超出字数限制时触发

示例代码

html
<template>
	<ux-page :stack="showDoc">
		<ux-navbar :title="title" :bold="true">
			<template v-slot:right>
				<!-- #ifndef MP -->
				<ux-button theme="text" icon="/static/tip.png" :icon-size="22" @click="onDoc()"></ux-button>
				<!-- #endif -->
			</template>
		</ux-navbar>
		
		<ux-scroll id="keyboardScroll">
			<ux-card direction="column" icon="flag-filled" title="键盘" :bold="true">
				<ux-text text="支持数字键盘、字母键盘、计算器键盘、安全键盘、车牌键盘"></ux-text>
			</ux-card>
			
			<ux-card direction="column" icon="arrowright" title="数字键盘" :bold="true">
				<ux-keyboard mode="number" v-model="content1" :max-length="10" :show-sub="true" placeholder="支持光标插入" @overlimit="overlimit">
					<ux-input v-model="content1" :readonly="true" placeholder="数字键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card direction="column" icon="arrowright" title="字母键盘" :bold="true">
				<ux-keyboard mode="letter" v-model="content2" :upper="false" :show-num="true" :show-symbol="true" :show-sapce="true" placeholder="支持光标插入">
					<ux-input v-model="content2" :readonly="true" placeholder="字母键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key1" direction="column" icon="arrowright" title="计算器键盘" :bold="true">
				<ux-keyboard mode="calculator" v-model="content3" scroll-id="keyboardScroll" adjust-position="key1">
					<ux-input v-model="content3" :readonly="true" placeholder="计算器键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key2" direction="column" icon="arrowright" title="安全键盘" :bold="true">
				<ux-keyboard mode="safety" :encrypt="true" v-model="content4" scroll-id="keyboardScroll" adjust-position="key2" placeholder="安全键盘 放心输入">
					<ux-input v-model="content4" :readonly="true" placeholder="安全键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key3" direction="column" icon="arrowright" title="车牌键盘" :bold="true">
				<ux-keyboard mode="platenumber" v-model="platenumber" scroll-id="keyboardScroll" adjust-position="key3">
					<ux-input v-model="platenumber" :readonly="true" placeholder="车牌键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-placeholder :height="400">
				<ux-row justify="center" align="center" style="height: 100%;">
					<ux-text prefix-icon="soapbubble-filled" text="真的没有了~"></ux-text>
				</ux-row>
			</ux-placeholder>
		</ux-scroll>
		
		<ux-toast ref="uxToastRef" position="top"></ux-toast>
	</ux-page>
</template>
<template>
	<ux-page :stack="showDoc">
		<ux-navbar :title="title" :bold="true">
			<template v-slot:right>
				<!-- #ifndef MP -->
				<ux-button theme="text" icon="/static/tip.png" :icon-size="22" @click="onDoc()"></ux-button>
				<!-- #endif -->
			</template>
		</ux-navbar>
		
		<ux-scroll id="keyboardScroll">
			<ux-card direction="column" icon="flag-filled" title="键盘" :bold="true">
				<ux-text text="支持数字键盘、字母键盘、计算器键盘、安全键盘、车牌键盘"></ux-text>
			</ux-card>
			
			<ux-card direction="column" icon="arrowright" title="数字键盘" :bold="true">
				<ux-keyboard mode="number" v-model="content1" :max-length="10" :show-sub="true" placeholder="支持光标插入" @overlimit="overlimit">
					<ux-input v-model="content1" :readonly="true" placeholder="数字键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card direction="column" icon="arrowright" title="字母键盘" :bold="true">
				<ux-keyboard mode="letter" v-model="content2" :upper="false" :show-num="true" :show-symbol="true" :show-sapce="true" placeholder="支持光标插入">
					<ux-input v-model="content2" :readonly="true" placeholder="字母键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key1" direction="column" icon="arrowright" title="计算器键盘" :bold="true">
				<ux-keyboard mode="calculator" v-model="content3" scroll-id="keyboardScroll" adjust-position="key1">
					<ux-input v-model="content3" :readonly="true" placeholder="计算器键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key2" direction="column" icon="arrowright" title="安全键盘" :bold="true">
				<ux-keyboard mode="safety" :encrypt="true" v-model="content4" scroll-id="keyboardScroll" adjust-position="key2" placeholder="安全键盘 放心输入">
					<ux-input v-model="content4" :readonly="true" placeholder="安全键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-card id="key3" direction="column" icon="arrowright" title="车牌键盘" :bold="true">
				<ux-keyboard mode="platenumber" v-model="platenumber" scroll-id="keyboardScroll" adjust-position="key3">
					<ux-input v-model="platenumber" :readonly="true" placeholder="车牌键盘"></ux-input>
				</ux-keyboard>
			</ux-card>
			
			<ux-placeholder :height="400">
				<ux-row justify="center" align="center" style="height: 100%;">
					<ux-text prefix-icon="soapbubble-filled" text="真的没有了~"></ux-text>
				</ux-row>
			</ux-placeholder>
		</ux-scroll>
		
		<ux-toast ref="uxToastRef" position="top"></ux-toast>
	</ux-page>
</template>
ts
<script setup>
	
	import * as plus from '@/uni_modules/ux-plus'
	import { $ux } from '@/uni_modules/ux-frame'
	import { UxToastData } from '@/uni_modules/ux-frame'
	
	const title = ref('')
	
	const content1 = ref('')
	const content2 = ref('')
	const content3 = ref('')
	const content4 = ref('')
	const platenumber = ref('')
	
	const uxToastRef = ref<UxToastComponentPublicInstance | null>(null)
	
	function overlimit(len: number) {
		uxToastRef.value?.$callMethod('push', {
			id: $ux.Random.uuid(),
			logo: '/static/logo.png',
			content: `超出字数限制:${len}`,
		} as UxToastData)
	}
	
	const showDoc = ref(false)
	
	function onDoc() {
		plus.openWeb({
			title: '在线文档',
			url: 'https://www.uxframe.cn/component/keyboard.html',
			// blur: 1,
			success: () => {
				showDoc.value = true
			},
			complete: () => {
				showDoc.value = false
			}
		})
	}
	
	onLoad((e: OnLoadOptions) => {
		title.value = e['title'] ?? ''
	})
	
</script>
<script setup>
	
	import * as plus from '@/uni_modules/ux-plus'
	import { $ux } from '@/uni_modules/ux-frame'
	import { UxToastData } from '@/uni_modules/ux-frame'
	
	const title = ref('')
	
	const content1 = ref('')
	const content2 = ref('')
	const content3 = ref('')
	const content4 = ref('')
	const platenumber = ref('')
	
	const uxToastRef = ref<UxToastComponentPublicInstance | null>(null)
	
	function overlimit(len: number) {
		uxToastRef.value?.$callMethod('push', {
			id: $ux.Random.uuid(),
			logo: '/static/logo.png',
			content: `超出字数限制:${len}`,
		} as UxToastData)
	}
	
	const showDoc = ref(false)
	
	function onDoc() {
		plus.openWeb({
			title: '在线文档',
			url: 'https://www.uxframe.cn/component/keyboard.html',
			// blur: 1,
			success: () => {
				showDoc.value = true
			},
			complete: () => {
				showDoc.value = false
			}
		})
	}
	
	onLoad((e: OnLoadOptions) => {
		title.value = e['title'] ?? ''
	})
	
</script>
css
<style lang="scss">
	
</style>
<style lang="scss">
	
</style>