2

我正在使用接收数字(和逗号/句点)字符的 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" 但这并不能解决问题。

在我的实际用例中,格式化代码更复杂,但这是一个最小的例子。formatNumberinput事件挂钩。

const formatNumber = function () {
    return parseFloat($('#amount').val()).toLocaleString();
}

这是在带有 Gboard(Google 键盘)的 Chrome 中的 Android 12 上体验到的。

4

0 回答 0