由于JavaScript的原因,iPhone在输入数字字段中添加了逗号

iPhone adds commas to input number field due to JavaScript

本文关键字:字段 数字 添加 输入 JavaScript iPhone 由于      更新时间:2023-09-26

我们有一个从移动浏览器获取信用卡的订单:<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"。在这种情况下,这不是一个解决方案

就我个人而言,我不认为信用卡号是input type="number"的合适用法。根据规格:

具有值为"number"的type属性的输入元素表示用于将元素值设置为表示数字的字符串的精确控件。

信用卡"数字"是一串数字,但它们不能识别特定的数值,用户使用一些浏览器附加到输入字段的上下箭头输入信用卡号码是没有意义的。您的最佳选择是简单地使用input type="text"

此外,将该JavaScript附加到keyup事件会惹恼像我这样想用分隔符输入信用卡号的人,因为这样更容易抽查。只要让人们随意输入他们的卡号,然后将其正常化即可。

我看不出你为什么在信用卡号码字段中使用type="number",因为你无论如何都在使用JS删除非整数值。在这里使用type="text"会很合适。

我创建了一个fiddle,并在我的iphone上进行了测试,它工作正常

http://jsfiddle.net/MH8gj/