我想在用户键入“@”时启动一个操作(启用自动完成)。我有可用的 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
而不是 keydown
。 keydown
与每次按键相关,而 keypress
与翻译后的字符相关,因此例如 a
可以与 a 不同
当按下 shift 键时,组合字符起作用,死键起作用,并且处理键盘映射中的其他差异。
关于javascript - 使用 JavaScript 检测输入的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134179/