2011-12-07 131 views
2

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

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

}); 

但是,我在这里测试@字符时该做什么?我知道我可以使用event.which来获取关键代码。但在这种情况下,我还需要检查轮班情况 - 从技术上讲,这不是问题,但我知道@键可以使用不同的语言设置,我担心这可能会不一致。也许我很担心,我可以依靠它总是SHIFT + 192

理想我想类似以下内容,以便更容易配置以后...

event.something == "@"; 

感谢所有帮助

+2

你可以看“keypress”而不是“keyup”吗?这真的是唯一可靠的方法(我知道,特别是由于键码映射的变化)。 – Pointy

回答

5

尝试检查event.which == 64,64是在符号的ASCII(未测试,但应工作)

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

如果失败,你可以KEYUP后检查(当用户释放键),如果他输入到文本字段中的最后一个字符是@符号,并相应采取行动。

Shai

+0

我已经有效地去了'event.keyCode ==“@”。charCodeAt(0)'所以可以使用字符串值来改变它:) – musefan

+0

:)另外很好的解决方案。快乐你的问题解决了! –