在我的网络应用程序中,我有输入这样的字段
<input type="number" value="50.0">
在我的浏览器的(德语)版本(Safari + Firefox + Chrome)中,这将输出给用户
50,0
这是正确和有用的,因为它是德国数字的标准符号(与欧洲大陆的大多数其他国家一样)。
我的问题是:
将相同的代码输出为
50.0
将系统语言设置为英语的用户?
如果是这样,这种标准是否适用于所有(或大多数)浏览器?
感谢您的帮助。
答案 0 :(得分:1)
这取决于你的十进制符号设置,虽然在Chrome中我似乎也可以输入一个点作为小数点:
<强> 窗 强>
<强> OSX 强>
答案 1 :(得分:1)
除了列出特定上下文中各个浏览器的实验结果之外,我们真正可以说的是,该格式与实现有关。甚至没有实现定义;浏览器无需记录他们如何处理这个问题。
HTML5 PR says明确但非常模糊:
此规范未定义用户界面的用户代理 使用;鼓励用户代理供应商考虑什么是最好的 为用户服务#39;需要。例如,波斯语或用户代理 阿拉伯市场可能支持波斯语和阿拉伯语数字输入 (按照描述将其转换为提交所需的格式 以上)。同样,为罗马人设计的用户代理可能会显示 罗马数字而不是小数的值;或者更多 实际上)为法国市场设计的用户代理可能 以前用数字和逗号之间的撇号显示值 小数,并允许用户以这种方式输入值, 在内部将其转换为上述提交格式。
非规范implementation notes使情况更加模糊:
鼓励浏览器使用显示日期的用户界面, 时间和数字根据区域设置的约定 输入元素的语言或用户首选的暗示 语言环境。使用页面的区域设置将确保与页面的一致性 页面提供的数据。
实际上,似乎没有浏览器实际使用页面区域设置(由lang
属性定义)。相反,它们使用浏览器区域设置或系统区域设置(不必相同)。
底线是HTML5输入元素没有正确本地化,规范甚至没有说明它们应该如何本地化。如果您需要控制区域设置,例如想要使用页面区域设置,您需要避免使用<input type="number" ...>
并使用合适的库例程