我想模拟Google搜索效果,即使搜索框没有聚焦,用户也可以开始输入,输入框将捕获所有键盘笔划。
我找了一个ontype
事件,但没找到任何东西。我知道event
之类的事件回调中的click
对象有键盘信息,但我认为这不是我所追求的。
答案 0 :(得分:4)
这就是工作:
$(document).on('keydown', function() {
$('input').focus();
});
答案 1 :(得分:3)
HTML:
<input type="text" id="txtSearch" />
使用Javascript:
var googleLikeKeyCapture = {
inputField : null,
documentKeydown: function(event) {
var inputField = googleLikeKeyCapture.inputField;
if(event.target != inputField.get(0)) {
event.target = inputField.get(0);
inputField.focus();
}
},
init: function() {
googleLikeKeyCapture.inputField = $('#txtSearch');
$(document).bind('keydown', googleLikeKeyCapture.documentKeydown);
googleLikeKeyCapture.inputField
.focus(function() {
$(document).unbind('keydown');
})
.blur(function() {
$(document).bind('keydown', googleLikeKeyCapture.documentKeydown);
});
googleLikeKeyCapture.init = function() {};
}
};
$(googleLikeKeyCapture.init);
你也可以找到jsFiddle示例here
编辑:
现在它是jQuery plugin。 :)如果在textarea或输入字段中发生keydown,它不会捕获键,其他任何内容都会转到指定的输入字段。如果你的选择器匹配多个元素,它只使用第一个元素。
用法:$('#txtSearch').captureKeys();
答案 2 :(得分:2)
您所追踪的事件是onkeypress。
答案 3 :(得分:0)
试试这个jQuery Text Change Event插件:
http://www.zurb.com/playground/jquery-text-change-custom-event