关于支付页面 input type=number


   最近做一个支付页面,jsp,js

   需要在安卓和ios上展示系统自带的数字键盘。

   百度下,是可以用 type=number来做,但是安卓和ios都出现了一些问题

   安卓上type=number时,某些机型,输入小数点“.”时,光标会自动往前跳格。使用type=tel,就能解决。

   ios上的问题就比较恶心了。

   因为我用了正则来替换非数字和只能出输入两位小数。

   安卓和浏览器上输入1.1.时,都能替换为1.1,而ios确全部替换,使整个输入框为空。

   经多番调整,测试,发现非正则问题。出现状况为,type=number,ios有正则后,输入两个小数点,认为不是数字,则全部替换。而type=text,则能正常操作。

   第二次,尝试将type换为tel后,ios端出现的数字键盘是没有小数点的,不符合情况。经百度,发现可以通过ios端替换数字键盘解决

   field.keyboardType = UIKeyboardTypeDecimalPad  有ios端的小伙伴,就不用看下去了。
 
   表示我没有ios的小伙伴,只能在js上苦苦挣扎。
   最终解决方案,是页面初始化时,将type=number,这样input获取焦点时,系统键盘是数字键盘,input内容更改时,将type设为text。
   你以为这就解决了嘛? no,man。
   ios九宫格的数字键盘,小数点为逗号“,”,小数点“.”,和分好“;”合并的,在一定的时间段,点击这三个的时候,会自动切换。你会发现意外的事,这个操作,会形成退格的效果。
   好的,这时候 我就要告诉你,写个自定义的键盘吧,孩子~

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM