将输入字段焦点设置为开始键入

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

谷歌也采用了这一function。 在搜索结果中,您可以单击任意位置(使搜索字段散焦),当您开始键入时,它会再次自动关注搜索字段。

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

非常感激。

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

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

见这里的例子。

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

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

 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); }); 

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

答案很简单:

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

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