对于信用卡支付,我们接受3位数字的安全码。
在某些浏览器(可能是较旧的IE版本)的某些情况下,出现了代码开头为0的情况(示例012),删除了前一个0,因此只允许输入12。因此,这会使安全代码无效。
我们把它作为一个数字输入,只允许在移动设备上输入数字,我有一种感觉,这就是原因。然而,我们能做些什么来阻止这种情况的发生吗?
当前输入代码为:
<input type="number" pattern="[0-9]*" size="4" value="$securitycode" name="securitycode">在此之前,非常感谢您。
发布于 2014-06-02 20:50:01
这种行为是根据the spec的,所以我不认为你可以直接做些什么来阻止它。
如果用户代理提供了用于选择数字的用户界面,则必须将该值设置为the best representation of the number,以浮点数的形式表示用户的选择。
具体地说,“最佳代表”的定义中的确凿证据是
(11)。收集ASCII数字的字符序列,并将结果序列解释为十进制整数。将该值乘以该整数。
我假设您希望保持输入类型,以便移动用户代理向用户呈现更适合输入数字代码任务的UI。因此,既然您现在知道了规范所说的内容,那么您可以在服务器端预期此行为:用零填充传入的值。
发布于 2014-06-02 20:52:13
将输入类型更改为"text“似乎可以解决此问题。
https://stackoverflow.com/questions/23994881
复制相似问题