将输入字段设置为开始输入

时间:2011-01-30 00:36:16

标签: php javascript jquery search-engine setfocus

我正在寻找一种方法,可以在没有选择任何内容的情况下开始在网站上打字,然后关注特定的输入字段。

Google也使用此功能。在他们的搜索结果中,您可以点击任意位置(使搜索字段散焦),当您开始输入时,它会自动重点关注搜索字段。

我在考虑jQuery一般的onkeyup功能,专注于该领域,有什么建议吗?

非常感谢。

4 个答案:

答案 0 :(得分:6)

您应绑定keydown事件,但请立即取消绑定,以便在其他文本输入中继续输入,而不必将焦点恢复为默认输入。

$(document).bind('keydown',function(e){
    $('#defaultInput').focus();
    $(document).unbind('keydown');
});

See example here.

答案 1 :(得分:1)

这个解决方案没有@mVChr解决方案的问题:即你可以用鼠标点击另一个输入并开始输入而不会因keydown - 绑定而失去焦点。

此解决方案也不会删除所有元素的keydown - 绑定,而是使用命名处理程序。

var default_input_handler = function() {
    $('.default-input').focus();
    $(document).off('keydown', default_input_handler);
}

$(document).on('keydown', default_input_handler);

$('input, textarea, select').on('focus', function() {
    $(document).off('keydown', default_input_handler);
});

答案 2 :(得分:0)

如果计划这样做,我会说使用onKeyUp而不是onKeyDown。它的行动早得多,有助于缓解互动的流动。

答案 3 :(得分:0)

答案很简单:

$(document).keydown(function() { $('#element').focus(); });

keydown毕竟是首选,因为keyup只会在按下第一个键后触发 - 并且分别不会捕获在我的搜索字段中键入的第一个键。