移动端——自己创建的数字键盘遇到的问题
作者:互联网
项目要求:需要自己新建一个输入金额的页面,创建一个数字键盘
设计思路:页面上方的输入框用input制作,数字键盘使用table中的td制作,给td绑定点击事件,根据点击的td中的文本内容,直接存放在输入框中。
遇到的问题:
1.input在移动端点击后会自动调用手机自带的软键盘
2.金额有自己的输入规则,不能以0和小数点开头,规定小数点后面两位小数。要求将不符合要求的金额进行合理的处理
正则表达式:/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/
3.onclick点击问题
解决方案:
第一个问题 :input在移动端点击的问题
解决方案:1.一开始我用了div标签然后使用contenteditable=true将div变成可输入状态,但是还是会自动调用手机软键盘,分析原因是带有了input的属性
2.想到是由input引起的问题,我就讲input改成了span标签,在利用text()文本方法的实现了显示金额但是不会调用手机自带的软键盘的问题
第二个问题:处理不符合规则的金额
解决方案:使用了正则表达式,将以0开头的整数去除0,超出两位小数位的使用 Math.floor(val * 100) / 100;保留两位小数,以小数点开头的使用val.replace(/^\./g, "")切除小数点
正整数:/^[+]{0,1}(\d+)$/
以0开头:/^[0]+/
只能输入两位小数:/^(\d+)(.\d{0,2})?$/
以小数点开头:/^\./
第三个问题:移动端点击的问题,onclick可以替换成touchstart
标签:创建,小数点,数字键盘,问题,点击,开头,input,移动 来源: https://blog.csdn.net/dwx_firm/article/details/120174572