Установите фокус ввода поля на начало ввода

Я ищу способ начать набирать текст на веб-сайте, не выбрав ничего, а затем сосредоточиться на конкретном поле ввода.

Google также использует эту функцию. В результатах поиска вы можете щелкнуть в любом месте (расфокусировать поле поиска), и когда вы начинаете вводить его, он автоматически снова фокусируется на поле поиска.

Я думал о jQuery general onkeyup, чтобы сосредоточиться на поле, любые предложения?

Очень признателен.

Вы должны привязать событие keydown , но немедленно отвяжите его, чтобы печатать можно в других текстовых вложениях, не возвращая фокус на вход по умолчанию.

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

См. Пример здесь.

Это решение не имеет проблемы, что решение @ mVChr имеет: Т.е. вы можете щелкнуть на другом вводе с помощью мыши и начать вводить текст, не теряя фокус из-за keydown keydown.

Также это решение не удаляет все 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); }); 

Если планируете это сделать, я бы сказал, что вместо onKeyDown используйте onKeyUp. Его гораздо раньше в действии, которое помогло бы облегчить поток взаимодействия.

Ответ прост как это:

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

keydown предпочтительнее всего потому, что keyup будет запущен только после нажатия первого ключа и, соответственно, не будет захвата первого ключа, введенного в поле поиска.