javascript - 使用 JQuery 获取按键代码,无需关心单击了哪个符号

标签 javascript jquery

我看到这里在询问如何从键盘上单击哪个键时有几个问题。我测试过如果是英文的话是可以工作的。 如果我更改语言并且键盘上的符号发生更改,则不会显示任何内容。

所以我的问题是如何获取按键代码而不关心用户在单击“G”或“Г”键或其他键时现在使用哪种语言。

这是我的简单 jquery 代码

$(document).keypress(function(e) {
    if (e.charCode == 103) {
        alert('g');
    } else if (e.charCode == 71) {
        alert('G');
    }
});

如果使用英语可以正常工作,那么当我更改为保加利亚语时就无法正常工作。我怎样才能适应每种语言?

最佳答案

无论键盘布局如何,使用按键事件都会为您提供键入的字符。 对于字符输入,建议您使用 keypress(),它将报告按下的字符的实际 ASCII 代码。它会自动处理字母大小写,并忽略非字符按下。无论哪种情况,您都可以使用 fromCharCode() 转换为字符串表示形式。例如

document.onkeypress = function(evt) {
    evt = evt || window.event;
    var charCode = evt.which || evt.keyCode;
    var charTyped = String.fromCharCode(charCode);
    alert("Character typed: " + charTyped);
};

关于javascript - 使用 JQuery 获取按键代码,无需关心单击了哪个符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38480190/

相关文章:

javascript - 如何使用 lodash 通过给定键映射对象?

javascript - HTML网站菜单动画

javascript - 在文本框上按下“Go”按钮时发生页面重定向(jquery/cordova)

javascript - 在移动设备上自动下载并打开 .APK 文件

javascript - 如何获取对象数组中某些特定属性的重复值的计数并将其存储在对象中

javascript - Firebase 身份验证错误 "The given sign-in provider is disabled"

javascript - "Potential Infinite Loop"困惑

JavaScript 多行字符串

jquery - 使用moment js计算两个日期之间的天数

jquery 模板标签与 Django 模板冲突!