我正在使用接收数字(和逗号/句点)字符的 HTML 文本输入。
我有一个 JavaScript 函数,它在输入时使用逗号千位分隔符格式化数字(如下所示)。
问题是,当从安卓设备输入一个以 100 开头的 4 位数字时,输入第 4 位后只剩下第一个字符。这是一个示例输入:
输入 | 输出 | 预期的 |
---|---|---|
1 | 1 | 1 |
10 | 10 | 10 |
100 | 100 | 100 |
1005 | 1 | 1,005 |
输入“100”后,拼写检查/自动更正/建议栏会建议 100 分的表情符号,同时在输入字段中的 100 下划线。输入第四个数字后,键盘也会重置为默认布局(从数字键)。这只发生在这种情况下,所以我的假设是表情符号替换文本建议与 JS 格式化代码有奇怪的交互。
我尝试在输入字段中设置 spellcheck="false"、autocorrect="off" 和 autocomplete="off" 但这并不能解决问题。
在我的实际用例中,格式化代码更复杂,但这是一个最小的例子。formatNumber
与input
事件挂钩。
const formatNumber = function () {
return parseFloat($('#amount').val()).toLocaleString();
}
这是在带有 Gboard(Google 键盘)的 Chrome 中的 Android 12 上体验到的。