我想知道如何创建一个事件监听器,这样当按下任何一个字符键时,弹出一个表单并且第一个输入处于焦点并接收输入,类似于刚才的类型搜索样式。 webOS 2.0操作系统,但用于联系表单。反正有没有这样做?如果你不熟悉这里是webos的链接,只需输入功能
答案 0 :(得分:7)
我不知道你是否只能订阅字母键。
您最好的选择是使用jQuery订阅.keydown()/ .keyup()并检查事件的键码以查看它是哪个字母。如果不是信件,请不要做任何事情。
像这样:
$('#target').keydown(function(event) {
if (event.keyCode >= 65 && event.keyCode <= 90) { // if a letter pressed
// play that funky music.
}
});
更多关于$.keydown。
列表答案 1 :(得分:5)
将keypress
事件用于任何与字符相关的事件。 keydown
和keyup
无法可靠地用于此目的。以下内容改编自my answer to a related recent question:
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!");
}
};