我正在构建主要用于移动浏览器的网络应用程序。我使用数字类型的输入字段,因此(大多数)移动浏览器仅调用数字键盘以获得更好的用户体验。这个网络应用程序主要用于小数点分隔符是逗号而不是点的区域,所以我需要处理这两个小数点分隔符。
如何用点和逗号覆盖整个混乱?
我的发现:
桌面版 Chrome
- 输入类型=数字
- 用户输入“4,55”到输入字段
$("#my_input").val();
返回“455”- 我无法从输入中获得正确的值
桌面版火狐
- 输入类型=数字
- 用户输入“4,55”到输入字段
$("#my_input").val();
返回“4,55”- 没关系,我可以用点替换逗号并获得正确的浮点数
安卓浏览器
- 输入类型=数字
- 用户输入“4,55”到输入字段
- 当输入失去焦点时,值被截断为“4”
- 混淆用户
视窗电话 8
- 输入类型=数字
- 用户输入“4,55”到输入字段
$("#my_input").val();
返回“4,55”- 没关系,我可以用点替换逗号并获得正确的浮点数
在这种情况下,当用户可能使用逗号或点作为小数点分隔符并且我想将 html 输入类型保留为数字以提供更好的用户体验时,“最佳实践”是什么?
我可以将逗号转换为“动态”的点,绑定关键事件,它是否适用于数字输入?
编辑
Currenlty 我没有任何解决方案,如何从类型设置为数字的输入中获取浮点值(作为字符串或数字)。如果最终用户输入“4,55”,Chrome 总是返回“455”,Firefox 返回“4,55”,这很好。
同样令人讨厌的是,在 Android(测试 4.2 模拟器)中,当我在输入字段中输入“4,55”并将焦点更改为其他位置时,输入的数字被截断为“4”。