我正在寻找一种方法,可以在没有选择任何内容的情况下开始在网站上打字,然后关注特定的输入字段。
Google也使用此功能。在他们的搜索结果中,您可以点击任意位置(使搜索字段散焦),当您开始输入时,它会自动重点关注搜索字段。
我在考虑jQuery一般的onkeyup功能,专注于该领域,有什么建议吗?
非常感谢。
答案 0 :(得分:6)
您应绑定keydown
事件,但请立即取消绑定,以便在其他文本输入中继续输入,而不必将焦点恢复为默认输入。
$(document).bind('keydown',function(e){
$('#defaultInput').focus();
$(document).unbind('keydown');
});
答案 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只会在按下第一个键后触发 - 并且分别不会捕获在我的搜索字段中键入的第一个键。