检测按下@键的操作

4

我正在尝试检测用户在文本框中按下@键的操作。我可以使用JQuery来处理keyup事件,就像这样...

$('#target').keyup(function(event) {

});

但是我该如何测试@字符?我知道可以使用event.which来获取按键代码。但在这种情况下,我还需要检查Shift键 - 从技术上讲,这不是问题,但我知道@键可能会随着不同语言设置而移动,我担心这可能会不一致。也许我是多虑了,我可以依赖它始终为SHIFT + 192吗?
理想情况下,我希望有类似以下的东西,以便稍后更轻松地进行配置...
event.something == "@";

感谢您提供的帮助。

2
你能监听"keypress"而不是"keyup"吗?那真的是我所知道的唯一可靠的方法(特别是由于按键映射的差异)。 - Pointy
2个回答

7

尝试检查event.which == 64,因为64是@符号的ASCII码(未经测试,但应该有效)

$("#target").keypress(function(event) {
  if ( event.which == 64 ) {
    alert("weehee");
  }
});

如果这个方法失败了,你可以在用户松开按键(keyup)后检查他输入到文本框中的最后一个字符是否是@符号,并相应地采取行动。
Shai

我已经成功地使用 event.keyCode == "@".charCodeAt(0),因此它可以使用一个字符串值进行修改 ;) - musefan

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接