4

以下 HTML5 代码有效。它允许用户使用 HTML5 type="number" 输入类型捕获小数。这可以通过 step 属性实现:

<input value="" name="turnover" id="turnover" placeholder="0" type="number" step="0.01">

问题是在南非,我们使用句点 (.) 作为小数,而不是逗号 (,)。不幸的是,Chrome 不允许使用句号并强制用户使用逗号。显然,其他一些浏览器使用您在 step 属性中使用的任何小数分隔符。似乎不是铬。

任何想法如何解决这个问题?

4

3 回答 3

0

这是我能想到的最接近的解决方案,它达到了相同的效果。它通过 pattern 属性使用带有正则表达式的 text 属性,而不是 HTML5 number 属性。

对于货币(或 2 个小数位):

<input type="text" value="0" name="turnover" placeholder="0" pattern="\d+(\.\d{2})?"/>

对于科学(或小数点后 6 位)

<input type="text" value="0" name="turnover" placeholder="0" pattern="\d+(\.\d{6})?"/>

对于任何小数位

<input type="text" value="0" name="turnover" placeholder="0" pattern="\d+(\.\d+)?"/>

希望这可以帮助。如果您有更好的解决方案,请发布!

于 2013-02-18T21:46:52.880 回答
0

您是否尝试过设置页面的文化代码?假设您的网站主要服务于南非访问者......?

于 2013-02-18T21:21:08.867 回答
0

您必须lang将该输入元素的属性指定为句点表示小数而不是逗号的国家/地区的属性,例如。英语 (zh)

<input type="number" step="0.01" min="0" lang="en">
于 2018-07-11T22:27:12.910 回答