如何检测' @'使用keydown或keyup jQuery事件处理程序?

时间:2014-03-23 19:05:47

标签: jquery keydown keyup

我需要做什么: 检测用户何时在文本框中输入“@”

jQuery'keyup'或'keydown'事件的作用: 它首先在按下shift时检测到keyup / keydown,在按下'2'时检测另一个keyup / keydown。为了制作'@'。

如何识别'@'?

2 个答案:

答案 0 :(得分:1)

对于支持DOM3 event.key的浏览器,

textbox.onkeyup = function(e) {
    if(e.key === '@') alert('@ detected');
};

Demo

由于event.key未得到广泛支持,您应该有event.keyCodeevent.which后备广告。

问题是那些只包含产生角色的键的编号,而不是字符本身。在我的键盘中,@没有自己的密钥,必须使用Ctrl + Shift + 2Alt Gr + {{1 }}

然后,对于像我这样的键盘,你可以使用

2

Demo

答案 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注册。