Думая об этом, события начинаются в следующем порядке: keydown
, keyup
, keypress
.
. Вы можете использовать что-то вроде:
$(document.body).on('keydown', function(e) {
if(document.activeElement.tagName.toLowerCase() != 'input') {
$('#my-default-input').focus();
}
});
Затем нажмите клавишусобытие завершится, позже оно запустит событие keyup (в теперь сфокусированном поле) и должно записать символ в поле, а затем запустит событие нажатия клавиши, которое могут использовать другие события (если таковые имеются), связанные с полем.
Содержимое оператора if можно изменить, чтобы отфильтровать определенные нажатия клавиш или добавить другие теги, например <canvas>
, в список «не прикасаться».
Также обратите внимание, чтоЯ не проверял это, но теоретически это должно работать.:)