最近有个需求是利率只允许输入数字和小数点,用以下

<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数字键盘的坑,限制特殊字符输入方案的更多相关文章

  1. iOS数字键盘自定义按键

    UIKeyboardTypeNumberPad 数字键盘自定义按键 最近做一个搜索用户的功能,这里使用了UISearchBar.由于搜索的方式只有手机号码,所以这里的键盘要限制为数字输入,可以这么做: ...

  2. H5调起IOS原生商店支付

    参考文档:http://www.html5plus.org/doc/zh_cn/payment.html 申请内购项目摘自 https://www.jianshu.com/p/1e79bfbe46e2 ...

  3. input 弹起数字键盘的那些坑

    input ios 踩的大坑 前言:最近有个需求要将全平台的交易密码由原来的 6-16位 复杂密码改为6位纯数字交易密码,涉及到非常多的业务场景,但修改起来也无非两种:设置交易密码,使用交易密码 设置 ...

  4. 手机端访问web调用数字键盘。

    转自  http://www.webkfa.com/one4/w1937.html 最近在做手机页面时,遇到数字输入的键盘的问题,之前的做法只是一刀切的使用 type="tel", ...

  5. js Date 函数方法 和 移动端数字键盘调用

    var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...

  6. [HTML5]移动开发不同手机弹出数字键盘问题

    这里还是先那么先交代一下遇到的问题.其实无论是tel还是number都不是完美的:type="tel"优点是iOS和Android的键盘表现都差不多缺点是那些字母好多余,虽然我没有 ...

  7. 【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)

    在Vue中的项目,基于VUX-UI开发,一个常见的需求: 1.金额输入框 2.弹出数字键盘 3.仅支持输入两位小数,限制最大11位数,不允许0开头 后续:与UI沟通后, 思路调整为限制输入,并减少正则 ...

  8. 一个数字键盘引发的血案——移动端H5输入框、光标、数字键盘全假套件实现

    https://juejin.im/post/5a44c5eef265da432d2868f6 为啥要写假键盘? 还是输入框.光标全假的假键盘? 手机自带的不用非得写个假的,吃饱没事干吧? 装逼?炫技 ...

  9. h5仿微信、支付宝数字键盘|微信支付键盘|支付宝付款键盘

    html5仿微信支付数字键盘|仿支付宝键盘|h5仿微信密码输入键盘|自定义数字键盘 很早之前由于项目需求,就有开发过一个h5仿微信支付键盘,这几天就把之前的数字键盘模块独立出来,重新整理开发成demo ...

随机推荐

  1. C++的正则

    C++的正则封装的不丰富.只有最基础的三个主要的函数(也可能是我孤陋寡闻).要有更为丰富的功能需要自己进一步组合. 我目前只需要循环查找这个功能,并且我也不知道c++的正则支持正则的哪些功能; 代码如 ...

  2. idea Tomcat部署时没有update classes and resources

    idea 没有update classes and resources         发现为了方便调试页面,想用idea的update classes and resources找不到了,发现需要把 ...

  3. POI 使用颜色字符串生成XSSFColor对象

    public static int[] hexToRgb(String hex) { String colorStr = hex; if (hex.startsWith("#")) ...

  4. java使用c3p0连接mysql,写中文数据乱码的问题

    此文说的乱码,是指所有中文的字符都变成了?. 首先,网上普遍搜索到的解决方案都是告诉你要在数据库连接字符串里面增加编码的定义,完整的连接字符串如下: url="jdbc:mysql://12 ...

  5. nginx入门之编译安装

    nginx是什么 nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件.它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用. nginx比它大哥apache性 ...

  6. Unity3D人脸建模 AvataSDK研究

    1.Unity与windows交互 调用文件浏览器 1.用C#调用comdlg32.dll  ,  利用GetOpenFileName实现打开文件对话框 <1> 整体参考https://w ...

  7. NABCD-课程表开发

    N:需求 1.学生录入课程需求. 2.学生对于空教室使用需求(自习或活动占用). 3.学生对于具体课程的查询需求. A:做法 基于安卓课程查询,录入系统. B:好处 1.满足课程表的基本需求 2.便于 ...

  8. 大数据入门到精通15--hive 对 date类型的处理

    一.基础日期处理 //date 日期处理select current_date;select current_timestamp;//to_date(time) ;to_date(string)sel ...

  9. 第六周博客作业 <西北师范大学| 周安伟>

    第六周博客作业 助教博客链接:https://home.cnblogs.com/u/zaw-315/ 本周工作:评阅作业24份点评困难的作业:无作业要求:https://www.cnblogs.com ...

  10. XML字符串转为Map

    import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException;import java.util.Ha ...