【问题标题】:Is there a way to stop Mobile Safari inserting commas into number fields on HTML forms?有没有办法阻止 Mobile Safari 在 HTML 表单的数字字段中插入逗号?
【发布时间】:2011-12-08 18:39:16
【问题描述】:

我有一个网站,其中包含允许用户输入信用卡详细信息的表单。卡号、发行号、CVC 号和他们希望存入的金额的字段使用 HTML 表单中的输入框,类型为“数字”。

iOS 5 附带的更新后的 Mobile Safari 会自动在“数字”输入字段中的数字中插入逗号。这不仅在 CC 号码中看起来很愚蠢,而且破坏了我的验证。有没有办法阻止这种情况?

使用“数字”而不是“文本”的唯一目的是让 iOS 和 Android 提供仅数字软键盘而不是全键盘。

我尝试使用“文本”类型的输入,其模式设置为“[0-9]*”。这会在 iOS 上调出数字键盘,但不会在 Android 上调出。它也不允许输入带有小数点的数字。

如果有任何建议,我将非常感激 :)

谢谢

【问题讨论】:

  • 不仅仅是抄送号码,简单的邮政编码字段也到处乱码。用户输入“55555”,现在格式化为“55,555”。

标签: android html safari ios5


【解决方案1】:

我将我的从“号码”更改为“电话”,但我没有看到问题出现了。

【讨论】:

  • 我已经为 CC 编号、问题和 CVC 完成了此操作。 “tel”的问题在于它不允许小数点,因此不能用于货币字段。
  • 对于货币字段,用逗号格式化有那么糟糕吗?似乎“tel”适用于逗号没有意义的所有情况。
【解决方案2】:

你已经接近了 - 你需要做的就是将模式设置为“[0-9]*”并将类型保持为“数字”。

【讨论】:

  • 不允许小数点对货币字段无用:(
【解决方案3】:

我也有同样的问题。我认为这与您设置中的区域格式有关。您可以将类型设置为“文本”:

type=text pattern="[0-9]{1,4}(\.[0-9]{2})?"

用于 0 到 9999.99 之间的值。不过,此解决方案不会触发 iOS 5 上的数字键盘。 或者保持区域设置覆盖(点/逗号)并设置:

type=number step="0.01" max="9999.99"

用于 0 到 9999.99 之间的十进制值。 此外,未能验证或清空具有“必需”属性的字段不会阻止表单在 Safari 5.1(OS X 和 iOS)中提交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多