Javascript - 是keydown是小键盘小数分隔符

时间:2017-09-21 09:07:29

标签: javascript internationalization

我有一个“简单”的问题,但无法找到解决方案。

我的问题:我想知道keydown是否是小键盘上的小数分隔符键(不依赖于它是否是en / fr / de键盘)。

答案很简单:使用keyCode = 110,但不推荐使用keyCode,我希望获得可持续的解决方案。

.key解决方案:我尝试了Keyboardevent.key,IE / Edge总是返回“Decimal”(太棒了!),但是当我在Chrome上试用它时它不起作用,返回“。”或“,”和char的charCode与“。”相同。或“,”键。

我看一下stackoverflow上的类似帖子,但问题更多的是关于“什么是本地小数点分隔符”而不是“关键是小键盘小数点分隔符”。

是否有人遇到同样的问题并找到了解决方案? 我最后的选择是使用keyCode,但我想避免这个解决方案。

1 个答案:

答案 0 :(得分:0)

解决方案是@Teemu给出的解决方案。

我使用此函数来检索它是否是已按下的DecimalSeparator。

function isKeyDS(evt) {
    if (evt.key !== undefined && evt.key === "Decimal") { // IE / Edge
        return true;
    }
    if (evt.code !== undefined && evt.code == "NumpadDecimal") { // Chrome / FF / Opera
        return true;
    }

    return evt.keyCode === 110; // Compatibiliy with old browser
}