模拟“ontype”事件

时间:2011-10-22 14:03:25

标签: javascript jquery

我想模拟Google搜索效果,即使搜索框没有聚焦,用户也可以开始输入,输入框将捕获所有键盘笔划。

我找了一个ontype事件,但没找到任何东西。我知道event之类的事件回调中的click对象有键盘信息,但我认为这不是我所追求的。

4 个答案:

答案 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