HTML5输入框,type=“number”在Chrome浏览器中不接受逗号

klsxnrf1  于 10个月前  发布在  HTML5
关注(0)|答案(5)|浏览(132)

我正在使用HTML5输入框和type="number"。对于一些文档,如果我也使用lang=""属性,应该可以输入带逗号的数字(而不是句点)。它在Firefox中工作,但在Chrome中不工作(不接受逗号)。如何让Chrome接受输入框中的逗号?我的问题是,我们的德国用户希望他们可以在那里输入逗号而不是句号。
https://jsfiddle.net/byte2702/y3Lpfw7m/

Please enter a number with comma: <br/>
<input id="num" type="number" step="any" lang="de" pattern="-?[0-9]+[\,.]*[0-9]+" />

字符串

mrzz3bfm

mrzz3bfm1#

实际上,如果我正确阅读了文档,pattern对于type=number来说是不支持的。因此,坚持使用type=text,然后添加pattern="..."用于前端验证。在下一步中,如果文本输入与JavaScript/计算格式不兼容,则需要将其转换为真实的。
2017年,仍然没有很好的解决这个共同的问题...

tp5buhyn

tp5buhyn2#

截至目前(2017年8月30日),Antoine Therry的答案似乎在Chrome中不再有效(我的版本是60.0.3112.113)。不幸的是,除了用JavaScript模拟type=“number”之外,我没有其他建议。

q9rjltbz

q9rjltbz3#

至于现在,我已经试过了

<html lang="en">

字符串

<input type="number" lang="en">


它让我输入任何:逗号或句号。我已经在桌面Ubuntu和移动的Android上的Firefox和Chrome中测试过它。

s4n0splo

s4n0splo4#

HTML5输入字段type=“number”旨在适应本地设置,称为本地化。这意味着它的行为(如格式化数字)取决于浏览器的区域设置。但是,这存在一个限制,因为您无法手动调整此特定元素的这些区域设置,也无法确定浏览器设置为哪个区域设置。
您可以将inputmode="numeric"与一个模式属性沿着使用,该属性将字符限制为数字和相关字符,而不是使用type="number"。这将允许您接受任何格式的数字。

<input type="text" pattern="[0-9]+([\.,][0-9]+)?" inputmode="numeric">

字符串

rggaifut

rggaifut5#

我找到了一个更简单的方法来解决它
第一个月
打印值请使用php函数
number_format(number,5,',','.');
https://www.php.net/manual/en/function.number-format.php

相关问题