uni-app 使用type为number的input弹出软键盘为符号键盘
uni-app 使用type为number的input弹出软键盘为符号键盘
示例代码:
<input type="number" />
操作步骤:
- 第一次使用type为number的input弹出软键盘
预期结果:
- 弹出数字键盘
实际结果:
- 弹出数字键盘中的更多
bug描述:
- 弹出的软键盘是符号键盘,而非数字键盘
| 项目信息 | 详情 |
|------------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC开发环境版本 | win7 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.1.19 |
| 手机系统 | iOS |
| 手机系统版本 | iOS 13.1 |
| 手机厂商 | 苹果 |
| 手机机型 | iPhone12 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 使用type为number的input弹出软键盘为符号键盘的实战教程也可以访问 https://www.itying.com/category-93-b0.html
9 回复
使用的是什么键盘?可否提供一份视频、示例?
更多关于uni-app 使用type为number的input弹出软键盘为符号键盘的实战教程也可以访问 https://www.itying.com/category-93-b0.html
就ios系统的默认键盘 第一次聚焦之后 弹出的键盘是 数字键盘中的符号键盘
就是弹出的数字键盘 默认选中了更多
弹出的键盘是长这样的
使用Safari浏览器访问了只有一个input标签的html,九宫格键盘第一次弹出确实是符号键盘,猜测可能是Safari的bug
回复 DCloud_UNI_LXH: 但是APP也会
回复 DCloud_UNI_LXH: APP-VUE的情况下也会这样
回复 yuyuko: 像是苹果键盘的问题
这是一个在iOS设备上常见的软键盘兼容性问题。当在uni-app中使用type="number"的input组件时,iOS系统可能会优先显示符号键盘而非纯数字键盘。
解决方案:
- 使用inputmode属性(推荐):
<input type="text" inputmode="numeric" pattern="[0-9]*" />
- 使用uni-app的input组件:
<uni-easyinput type="number" />
- 使用uni-app的键盘配置:
<input type="number" @focus="handleFocus" />
<script>
export default {
methods: {
handleFocus() {
// 强制数字键盘
uni.hideKeyboard();
setTimeout(() => {
// 触发数字键盘
}, 100);
}
}
}
</script>
- 使用原生input事件处理:
// 限制只能输入数字
onInput(e) {
let value = e.detail.value.replace(/[^\d]/g, '');
this.value = value;
}

