我在 Chrome 中运行的 Web 应用程序上工作,我的输入类型为 number
。在我的语言环境中,逗号用于十进制数字,空格用于千位分隔(不是那么重要),但是当我将这些字符输入数字字段时,它们会被简单地删除,有效地将金额增加一百。
我已经在浏览器设置和页面上设置了语言,但我仍然需要使用小数点。有什么方法可以配置该字段以接受逗号吗?
或者,我必须使用 javascript 来解决这个问题。我想我可以处理 keydown 事件并在用户键入时将逗号更改为句点,但这不会提供很好的用户体验,对吗?那么我怎样才能在我的代码中占用最少的空间来实现这一点呢?
原文由 Jørgen 发布,翻译遵循 CC BY-SA 4.0 许可协议
HTML5
input type=number
从本地化的角度来看是不够的,因为定义和实现。它旨在进行本地化,但根据 浏览器 的区域设置进行本地化,您无法设置,甚至无法作为设计者/作者知道。在我的 Chrome 上,
input type=number step=0.001
接受 1,2(带逗号)并将其作为 1.2 发送,它接受 1.200(带句点),明显地将其转换为 1200 并照此发送。当浏览器区域设置为芬兰语时,这或多或少就是这样的。但它无法接受 1 200(这是芬兰语中 1200 的标准书写方式),而是仅发送数字 1。所以还是比较没希望的。使用任何你能找到的 JavaScript 小部件,或一个简单的文本输入框。任何东西都可能比
input type=number
更好,除非所有用户都使用具有相同区域设置的浏览器并且对数字格式有相同的期望。