javascript - 使用 JavaScript 检测输入的字符

标签 javascript jquery events keyboard multilingual

我想在用户键入“@”时启动一个操作(启用自动完成)。我有可用的 jQuery。

通常在QWERTY键盘上,是这样的:

$('textarea').live('keydown', function(e) {
  if (e.which === 50) {
    console.log('@ has been entered.');
  }
});

但是它在 AZERTY 键盘上无法正常工作。 keyCode = 50对应于é~/2键。在AZERTY键盘输入'@',就是AltGr + à@/0 键。

编辑:自动完成在输入 @ 时开始,并且仅在此之后。例如,当有人输入“Hello @”然后它开始,但是当他输入“Hello @nothing else”时,complete 不会做任何事情。示例:http://mrkipling.github.com/jQuery-at-username/ (它仅适用于 QWERTY 键盘)。

最佳答案

使用 keypress 而不是 keydownkeydown 与每次按键相关,而 keypress 与翻译后的字符相关,因此例如 a 可以与 a 不同 当按下 shift 键时,组合字符起作用,死键起作用,并且处理键盘映射中的其他差异。

关于javascript - 使用 JavaScript 检测输入的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134179/

相关文章:

jquery - 如何一一执行ajax请求

javascript - 无法使用javascript将焦点设置到教科书

c# - 如何强制使用订阅方法的事件

javascript - 根据 Powerpoint 中的用户输入动态更改幻灯片

javascript - 从对象数组中过滤元素

php - 使用php创建JS文件

events - 如何确保我的事件仅由我的应用程序的一个实例处理?

javascript - 当同时按下两个键时观察 JavaScript 中的 keydown 事件

javascript - 如何使用 jquery 将更改保存到文本区域

javascript - PHP 使用 AJAX 将数据 POST 到另一个页面