使用javascript检测退格和特殊字符

时间:2014-05-02 14:13:38

标签: javascript jquery key

我想在输入字段上检测这两个行为:

1)退格键

2)“@”和“#”键

通过使用jQuery的keypress函数,我能够检测特殊字符,但不能检测退格。 链接 - > How to know if .keyup() is a character key (jQuery)

通过使用jQuery的keyup / keydown,我能够检测退格,但不能检测特殊字符。 链接 - > jQuery: keyPress Backspace won't fire?

如何检测这两种行为?

注意:Keypress只能在firefox中检测退格。 Chrome无法检测到此信息。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码段:

var keys = {};

$('input').keydown(function (e) {
    keys[e.which] = true;
});

$('input').keyup(function (e) {        
    getKeys();
    delete keys[e.which];    
});

function getKeys() {    
   if(keys[8]) {
        alert('bakspace pressed');
    }else if(keys[17] && keys[18] && keys[48]) {
        alert('@ pressed');
    }else if(keys[17] && keys[18] && keys[51]) {
        alert('# pressed');
    }    
}

DEMO

原帖:https://stackoverflow.com/a/4954480/1414562