我正在构建主要用于移动浏览器的网络应用程序。我使用数字类型的输入字段,因此(大多数)移动浏览器仅调用数字键盘以获得更好的用户体验。这个网络应用程序主要用于小数点分隔符是逗号而不是点的区域,所以我需要处理两个小数点分隔符。
如何用点和逗号覆盖整个混乱?
我的发现:
桌面铬
- 输入类型=数字
- 用户输入“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 输入类型保留为数字以提供更好的用户体验时,有哪些“最佳实践”?
我可以将逗号“即时”转换为点,绑定键事件,它是否与数字输入一起使用?
编辑
目前我没有任何解决方案,如何从类型设置为数字的输入中获取浮点值(作为字符串或数字)。如果最终用户输入“4,55”,Chrome 总是返回“455”,Firefox 返回“4,55”,这很好。
同样令人讨厌的是,在 Android(经过测试的 4.2 模拟器)中,当我输入“4,55”以输入字段并将焦点更改为其他位置时,输入的数字会被截断为“4”。