2014-10-20 65 views
3

在我的Web应用程序,我有这样的什么决定输入值是用点还是逗号输出?

<input type="number" value="50.0"> 

在(德语)的输入栏版本的我的浏览器(Safari浏览器+火狐+铬),这是输出给用户

50,0 

这是正确和有用的,因为它是德国数字的标准符号(与欧洲大陆其他大多数国家一样)。

我的问题是:

将相同的代码像

50.0 

输出到谁都有自己的系统语言设置为英语的用户?

如果是这样,这是一种适用于所有(或大多数)浏览器的标准吗?

感谢您的任何帮助。

+0

这应取决于浏览器语言设置,而不是系统语言设置。您可以通过将浏览器接受并将语言显示为英语来为自己测试该行为。 – feeela 2014-10-20 11:47:47

+0

不是。我的设置是美国英语,但使用HTML5类型时我会看到欧洲的日期和数字 – mplungjan 2014-10-20 12:14:37

回答

1

这取决于你的十进制符号设置,但在Chrome中我似乎可以输入一个句点小数点太:

的Windows

Windows 7

OSX

OSX Maverics OSX Maverics

+0

你说得对,我想。在我的Mac上,它也可以在系统设置中设置。不知道。谢谢!除非有人提出更好的解释,否则我会在接下来的日子里将你的答案标记为正确答案。 – Tintin81 2014-10-20 11:34:52

+0

已更新为OSX – mplungjan 2014-10-20 11:46:26

1

所有这一切,我们真的可以说,除了从特定语境各个浏览器实验上市下来的结果是,该格式是实现相关的。甚至没有实现定义;浏览器不需要记录他们如何处理这个问题。

HTML5 PR says明确,但很含糊:

这个规范没有定义接口的用户代理是什么用户 使用;鼓励用户代理供应商考虑最好的服务是什么,以满足用户的需求。例如,Persian或 阿拉伯市场的用户代理可能支持波斯文和阿拉伯文数字输入 (将其转换为上述 所述提交所需的格式)。同样,为罗马人设计的用户代理可能会以罗马数字显示 值,而不是十进制;或(实际上更多 )为法国市场设计的用户代理可能在 之前显示带有撇号的数值,并且允许用户以该方式输入数值, 可在内部将其转换为提交格式如上所述。

的非规范implementation notes做得更模糊的情况:

浏览器,鼓励使用当前日期, 时间和数字根据任一区域 的约定隐含的用户界面通过输入元素的语言或用户首选的 区域设置。使用页面的语言环境将确保与页面提供的数据的一致性。

实际上,似乎没有浏览器实际使用页面区域设置(由lang属性定义)。相反,他们使用浏览器区域设置或系统区域设置(不必相同)。

底线是HTML5输入元素尚未正确本地化,规范甚至没有说明应该如何进行本地化。如果您需要控制区域设置,例如想要使用语言环境,则需要避免使用<input type="number" ...>并使用合适的库例程