h5 调起ios数字键盘的坑,限制特殊字符输入方案
最近有个需求是利率只允许输入数字和小数点,用以下
<input type="number" pattern="[0-9]*">
在ios会调起数字键盘,但是左下角竟然是空不是“.”!

这个坑相信很多移动端h5开发会遇到,需支持小数点那就不能调起这种键盘了,那只能调起以下键盘
<input type="number">

但是问题又来了ios系统的type="number"竟然不能自动限制输入特殊字符!
那只能对这个键盘输入做限制特殊字符输入了!有以下两种方案限制(用的vue框架)
方案一:
<input type="number" @keydown="preventNotNumber($event)">
methods: {
isBackspace(keyCode) {
return keyCode === 8;
},
isDot(keyCode) {
return keyCode === 46 || keyCode === 110 || keyCode === 190;
},
isNumber(keyCode) {
return (keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105);
},
preventNotNumber(event) {
var keyCode = event. keyCode;
if (!this.isBackspace(keyCode) && !this.isDot(keyCode) && !this.isNumber(keyCode)) {
// 其他按键
event.preventDefault();
event.stopPropagation();
return false;
}
}
}
但是这个方案还有坑,有些键值竟然是相同的!例如键“2”和键“@”的keyCode都是50!

方案二:
<input type="number" @keydown="preventNotNumber($event)">
methods: {
isBackspace(keyValue) {
return keyValue === 'Backspace';
},
isDot(keyValue) {
return keyValue === '.';
},
isNumber(keyValue) {
return (keyValue >= 0 && keyValue <= 9);
},
preventNotNumber(event) {
var keyValue = event.key;
if (!calculator.isBackspace(keyValue) && !calculator.isDot(keyValue) && !calculator.isNumber(keyValue)) {
// 其他按键
event.preventDefault();
event.stopPropagation();
return false;
}
}
}
这个方案是直接对比按键值,虽然有点不是很好,但是毕竟能解决问题,限制除“.”外其他特殊字符的输入!

h5 调起ios数字键盘的坑,限制特殊字符输入方案的更多相关文章
- iOS数字键盘自定义按键
UIKeyboardTypeNumberPad 数字键盘自定义按键 最近做一个搜索用户的功能,这里使用了UISearchBar.由于搜索的方式只有手机号码,所以这里的键盘要限制为数字输入,可以这么做: ...
- H5调起IOS原生商店支付
参考文档:http://www.html5plus.org/doc/zh_cn/payment.html 申请内购项目摘自 https://www.jianshu.com/p/1e79bfbe46e2 ...
- input 弹起数字键盘的那些坑
input ios 踩的大坑 前言:最近有个需求要将全平台的交易密码由原来的 6-16位 复杂密码改为6位纯数字交易密码,涉及到非常多的业务场景,但修改起来也无非两种:设置交易密码,使用交易密码 设置 ...
- 手机端访问web调用数字键盘。
转自 http://www.webkfa.com/one4/w1937.html 最近在做手机页面时,遇到数字输入的键盘的问题,之前的做法只是一刀切的使用 type="tel", ...
- js Date 函数方法 和 移动端数字键盘调用
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...
- [HTML5]移动开发不同手机弹出数字键盘问题
这里还是先那么先交代一下遇到的问题.其实无论是tel还是number都不是完美的:type="tel"优点是iOS和Android的键盘表现都差不多缺点是那些字母好多余,虽然我没有 ...
- 【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)
在Vue中的项目,基于VUX-UI开发,一个常见的需求: 1.金额输入框 2.弹出数字键盘 3.仅支持输入两位小数,限制最大11位数,不允许0开头 后续:与UI沟通后, 思路调整为限制输入,并减少正则 ...
- 一个数字键盘引发的血案——移动端H5输入框、光标、数字键盘全假套件实现
https://juejin.im/post/5a44c5eef265da432d2868f6 为啥要写假键盘? 还是输入框.光标全假的假键盘? 手机自带的不用非得写个假的,吃饱没事干吧? 装逼?炫技 ...
- h5仿微信、支付宝数字键盘|微信支付键盘|支付宝付款键盘
html5仿微信支付数字键盘|仿支付宝键盘|h5仿微信密码输入键盘|自定义数字键盘 很早之前由于项目需求,就有开发过一个h5仿微信支付键盘,这几天就把之前的数字键盘模块独立出来,重新整理开发成demo ...
随机推荐
- Jenkins+Git+Maven构建并部署springboot(构建多模块中的单个模块)
主要思路:1.jenkins从git中拉取项目源码:jenkins使用maven构建并将生成的jar包通过shell脚本启动. 环境:环境:Centos7.Maven3.5.3.git(单机) 准备工 ...
- Scratch 数字游戏
本想用Scratch给女儿做一个类似舒尔特方格的程序来认识数字和提升专注,想想这对刚刚3岁的孩子来说还是比较困难的,于是只做了3*3的方格,来认识数字1-9. 游戏地址:Random 9 v0.21 ...
- my题库
数论: 51nod 1240 莫比乌斯函数 51nod 1135 原根 图论: 51nod 1264 线段相交 51nod 1298 圆与三角形 dp: 数位dp: hdu 4734 51nod 10 ...
- Git安装配置,和使用的简介
方案1:安装Git和TortoiseGit,使用TortoiseGit的图形化界面管理项目代码 材料准备: Git安装包 TortoiseGit安装包 注:包资源,可疑百度搜索,在Git官网下载 安装 ...
- day48 前端高级选择器优先级
复习 1. 基础选择器 标签选择器(div) | 类选择器(.div1) | id选择器(#div2) <div class="div1" id="div2&quo ...
- java 第二天运算符及录入函数Scanner
package com.it; /* 运算符;就是用于对常量和变量进行操作的符号 表达式:用运算符链接起来的符合java语法的式子,不同的运算符链接的表达式是不同类型的表达式 */ public cl ...
- 自己电脑组一个Wifi热点
① 在cmd窗口 ssid 是wifi名称.key是密码 netsh wlan set hostednetwork mode=allow ssid=yb key=15564130 ② ③ 运行脚本 新 ...
- C# 微信网页授权多域名解决
在做微信开发的时候,会遇到这样的场景:一个公众号,会有多个业务:官网.论坛.商城等等 微信网页授权域名 目前最多可以填写两个!!!,那么问题来了?这应该怎么办? 答案就是: 做一个中转服务! 域名1: ...
- 【Spring学习】SpringMVC demo搭建
前言:今天会通过IDEA建立一个SpringMVC的demo项目,在其中会涉及到一些基础模块和相关知识,然后结合这个具体的知识点,理解清楚SpringMVC的框架原理(以图的形式展示),顺藤摸瓜分析源 ...
- ES查询-match VS match_phrase
我们以一个查询的示例开始,我们在student这个type中存储了一些学生的基本信息,我们分别使用match和match_phrase进行查询. 首先,使用match进行检索,关键字是“He is”: ...