ввод текстового поля, фокус на клавиатуре - PullRequest
0 голосов
/ 05 июня 2011

У меня есть пара текстовых полей ввода, которые все разделены, но я хочу, чтобы, когда вы начинаете печатать, 1 фокусируется.

Я думаю, мне нужно сделать это с помощью jquery .bind(), но я не уверен:

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

И ты можешь продолжать это делать. Код, который у меня есть, теперь позволяет мне выполнять это действие только один раз и не проверяет, набираю ли я другой блок.

Есть ли способ с jquery, чтобы это произошло?

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Если у вас есть, например, 3 поля ввода на вашей странице:

<input type="text" id="t1" />
<input type="text" id="t2" />
<input type="text" id="t3" />

При использовании следующего JS он будет фокусироваться только на втором, если фокус не на t1 или t3 или любом другом элементе ввода на странице.

$(document).bind('keydown',function(e){
    if ($(':focus:not("input")').length){
        $('#t2').focus();
    }
});

Пример: http://jsfiddle.net/niklasvh/gPs45/

0 голосов
/ 05 июня 2011
$(document).one('onkeydown',function(e){
  $(':input:first').focus();
});

Используйте jQuery .one(), чтобы связывать только один раз на странице (это делает его более удобным, чем связывание / открепление). Тогда вам решать, хотите ли вы поймать keyChar и вставить это в поле, чтобы они не «потеряли» это первое нажатие клавиши.

...