添加偶数监听器对于按下的任何字母键?

mcb*_*eav 2 javascript jquery event-handling javascript-events

我想知道如何创建一个事件监听器,以便当按下任何字符键时弹出一个表单,第一个输入处于焦点并接收输入,类似于webOS 2.0操作的正好类型搜索样式系统,但用于联系表格.反正有没有这样做?如果你不熟悉这里是webos的链接只是输入功能

http://www.youtube.com/watch?v=ixPsB7-tVGo

RPM*_*984 7

我不知道你是否只能订阅字母键.

您最好的选择是使用jQuery订阅.keydown()/ .keyup()并检查事件的键码以查看它是哪个字母.如果不是信件,请不要做任何事情.

像这样:

$('#target').keydown(function(event) {
  if (event.keyCode >= 65 && event.keyCode <= 90) { // if a letter pressed
     // play that funky music.  
  }
});
Run Code Online (Sandbox Code Playgroud)

更多关于$ .keydown.

密钥代码列表.


Tim*_*own 5

keypress事件用于任何与角色相关的事件.keydown并且keyup不能可靠地用于此目的.以下内容改编自我对最近相关问题的回答:

function isCharacterKeyPress(evt) {
    if (typeof evt.which == "undefined") {
        // This is IE, which only fires keypress events for printable keys
        return true;
    } else if (typeof evt.which == "number" && evt.which > 0) {
        // In other browsers except old versions of WebKit, evt.which is
        // only greater than zero if the keypress is a printable key.
        // We need to filter out backspace and ctrl/alt/meta key combinations
        return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which != 8;
    }
    return false;
}

var input = document.getElementById("your_input_id");
input.onkeypress = function(evt) {
    evt = evt || window.event;

    if (isCharacterKeyPress(evt)) {
        // Do your stuff here
        alert("Character!");
    }
};
Run Code Online (Sandbox Code Playgroud)