我已经看到一些浏览器将数字的input type="number"
表示法本地化。
所以现在,在我的应用程序显示经度和纬度坐标的字段中,我得到了类似于"51,983“的内容,而它应该是"51.982559”。我的变通方法是使用input type="text"
,但我希望使用数字输入并正确显示小数。
有没有一种方法可以强制浏览器在数字输入中使用小数点,而不管客户端的本地设置?
(不用说,在我的应用程序中,我无论如何都会在服务器端纠正这个错误,但在我的设置中,我也需要它在客户端正确无误(因为一些JavaScript))。
提前谢谢。
更新到目前为止,在Windows7上检查Chrome28.0.1500.71m版本,数字输入不接受逗号格式的小数。使用step
属性提出的建议似乎不起作用。
发布于 2011-09-30 20:02:49
通过将step属性指定为所需小数的精度,并将lang属性设置为使用period对小数进行格式化的区域设置,您的html5数字输入将接受小数。例如:要获取像10.56这样的值;我的意思是2个小数位数,请执行以下操作:
<input type="number" step="0.01" min="0" lang="en" value="1.99">
您可以进一步指定最大允许值的最大属性。
编辑输入将lang属性添加到具有区域设置值的输入元素,该区域设置值使用点而不是逗号设置小数的格式
发布于 2015-03-22 19:21:35
目前,Firefox支持输入所在的HTML元素的语言。例如,在Firefox中尝试此小提琴:
http://jsfiddle.net/ashraf_sabry_m/yzzhop75/1/
您将看到数字是阿拉伯语的,逗号用作小数点分隔符,阿拉伯语就是这种情况。这是因为BODY
标记被赋予了lang="ar-EG"
属性。
接下来,试试这个:
http://jsfiddle.net/ashraf_sabry_m/yzzhop75/2/
这里使用一个点作为小数点分隔符,因为在给定属性lang="en-US"
的情况下,输入被包装在DIV
中。
因此,您可以采用的解决方案是使用容器元素包装数值输入,该容器元素设置为使用点作为小数分隔符的区域性。
发布于 2013-07-13 05:32:24
根据spec,您可以使用any
作为step
属性的值:
<input type="number" step="any">
https://stackoverflow.com/questions/6178332
复制相似问题