在IOS与Android实现possword与number

来源:互联网 发布:openwrt 修改mac wifi 编辑:程序博客网 时间:2024/06/08 00:39

最近  项目中 在项目中遇到一个问题  支付密码格式为6格密码框  输入时IOS与Android均能弹出小键盘且正常输入  但点击删除键执行删除时IOS正常   Android的小键盘每次删除都会自动下落,只有重新点击input框,它才会弹起,一删除又会自动下落。后来一一排除原因,发现是js中转换类型的时候导致Android的小键盘自动下落。

为确保密码框获取焦点时,弹出数字键盘,所以JSP中设置的密码框的属性为nubmer,但因为是密码,输入之后在js中应转换为possword。删除时,框为possword,应该置为number。这样就导致Android的小键盘下落。总归问题就是一句话,密码框显示时应为possword,输入时为保证弹出的是数字键盘所以应为number。但js中转换时又导致Android中小键盘下落,在百度找了一圈都没找到好方法,基本都是千篇一律。

后翻墙在google找到一种方法,JSP中设置

type="number"pattern="[0-9]*" inputmode="numeric"

但这种方法也是IOS有效,Android上虽然删除时小键盘不掉落,但是在第一个框时,小键盘为字母键盘,而不是数字键盘,必须手动换成数字键盘。

最后一个input密码框的代码为:

 <input class="mCommon_basicPwdEnter_numInput" type="number" id="pwd6" sort="6"                           onkeyup="this.value=this.value.replace(/\D/g,'')"                           onafterpaste="this.value=this.value.replace(/\D/g,'')"                           oninput="if(value.length>1)value=value.slice(0,1)" pattern="[0-9]*" inputmode="numeric">

最后在google上找了一种方法,上面都说Android用了那个就可以的解决了  但我试了下还是不行  不晓得是不是我的打开方式不对,最后还是用了第一种


0 0