我们有一张从移动浏览器中获取信用卡的订单:< input type =“number”id =“txtCCNumber”/>
除此之外,我们还有一个JavaScript,用于删除插入到字段中的所有非整数字符:
$('input#txtCCNumber').keyup(function(e)
{
var ccnum = $(this).val();
$(this).val(ccnum.replace(/[^\d]/g, ''));
});
然而,我们只是意识到,当使用iPhone的人试图使用他们的信用卡时,iPhone会自动每3个数字添加一个逗号(因为JavaScript)。
有人知道修复此JavaScript的方法,以便它可以正常工作吗?
我不想使用type =“tel”。在这种情况下,这不是解决方案。
答案 0 :(得分:4)
就个人而言,我认为信用卡号码不适合input type="number"
使用。根据{{3}}:
具有type属性值为“number”的input元素表示将元素值设置为表示数字的字符串的精确控件。
信用卡“数字”是数字字符串,但它们不标识特定的数字值,用户使用某些浏览器附加的向上和向下箭头输入信用卡号码没有意义到输入字段。您最好的选择就是使用input type="text"
。
此外,将JavaScript附加到keyup
事件会让像我这样的人想要使用分隔符输入他们的信用卡号码,因为它更容易进行检查。只需让人们输入他们的卡号,但他们喜欢并稍后将其标准化。
答案 1 :(得分:0)
我没有看到您为信用卡号码字段使用type =“number”的原因,因为您无论如何都要使用JS删除非整数值。在这里使用type =“text”是合适的。
答案 2 :(得分:-2)
我创建了一个小提琴并在我的iphone上测试了它并且它正常工作。 德尔>
<德尔> http://jsfiddle.net/MH8gj/ 德尔>