Я ищу способ начать набирать текст на веб-сайте, не выбрав ничего, а затем сосредоточиться на конкретном поле ввода.
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 будет запущен только после нажатия первого ключа и, соответственно, не будет захвата первого ключа, введенного в поле поиска.