我需要做什么: 检测用户何时在文本框中输入“@”
jQuery'keyup'或'keydown'事件的作用: 它首先在按下shift时检测到keyup / keydown,在按下'2'时检测另一个keyup / keydown。为了制作'@'。
如何识别'@'?
答案 0 :(得分:1)
对于支持DOM3 event.key
的浏览器,
textbox.onkeyup = function(e) {
if(e.key === '@') alert('@ detected');
};
由于event.key
未得到广泛支持,您应该有event.keyCode
或event.which
后备广告。
问题是那些只包含产生角色的键的编号,而不是字符本身。在我的键盘中,@
没有自己的密钥,必须使用Ctrl
+ Shift
+ 2
或Alt Gr
+ {{1 }}
然后,对于像我这样的键盘,你可以使用
2
答案 1 :(得分:0)
$("#Txtbox").keyup (function(e) {
if (e.keyCode == 50)
{
if (e.shiftKey === true)
{
alert ('@ was pressed' );
}
else
{
// do nothing
}
}
});
请阅读此内容 https://developer.mozilla.org/en-US/docs/Web/API/event.keyCode 笔记 在按键事件中,按下的键的Unicode值存储在keyCode或charCode属性中,而不是两者都存储。如果按下的键生成一个字符(例如'a'),则charCode被设置为该字符的代码,尊重字母大小写。 (即charCode考虑是否按住shift键)。否则,按下的键的代码存储在keyCode中。
keyCode始终在keydown和keyup事件中设置。在这些情况下,charCode永远不会被设置。
要获取密钥的代码,无论密钥是否存储在keyCode或charCode中,都要查询哪个属性。
通过IME输入的字符不会通过keyCode或charCode注册。