JQuery. Google-подобный автофокус? - PullRequest
0 голосов
/ 17 января 2012

Я хочу установить фокус на поле ввода, когда я нажимаю любую букву на клавиатуре.Но ...

1) ... поле добавляется динамически, после загрузки DOM

2) ... Я не знаю, как искать только буквы (без цифр, стрелок и т. Д.)

$("#table_filter").on("load", function(event){
  alert('TEST');
});

Где я должен указать jQuery присматривать за нажатием клавиш?Извините, я довольно незнаком с jQuery: (

Ответы [ 2 ]

1 голос
/ 17 января 2012

Если он загружен после (динамически), вам нужно посмотреть live

http://api.jquery.com/live/

Ошибка реального времени устарела и требует использования .on.

Это будет охватывать пункт 1 DOM.Для части 2 вы можете использовать плагин, такой как jquery numberic: http://www.texotela.co.uk/code/jquery/numeric/ - или создать что-то похожее на это: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values.

0 голосов
/ 17 января 2012

Следующий код должен делать именно то, что вы хотите. Я прокомментировал код, как я написал его, так что должно быть легко следовать. Имейте в виду, что некоторые клавиатуры могут возвращать разные клавиши ввода (хотя не знаете почему)

В другом посте я пытаюсь помочь, парень продолжает настаивать 19 = Enter, но у меня есть несколько рабочих программ, которые говорят иначе. Он утверждает, что использует заводскую клавиатуру, но, как я уже говорил, все еще не уверен в недостатке. Насколько я могу найти, 19 = Pause / Break key (если существует). так что вы можете захотеть проверить с разными ключами, чтобы убедиться, что мои утверждения «если» ниже верны.

Если это поможет, я поставлю jsfiddle для вас, который должен показать вам номер для каждой клавиши, которую вы нажимаете. Просто нажмите на первое поле ввода, а затем нажмите любую клавишу, чтобы увидеть его код во втором окне. -> http://jsfiddle.net/SpYk3/KCzvh/

$(function() {
   // Create new input
   var newInp = $("<input />");
   // Place it wherever
    newInp.appendTo($("body"));
    $(document).keyup(function(e) {
        // event.which is the "keycode" of each key on keyboard
        // 65 = a, 90 = z, the other letters fall between the 2
        // 90 - 26 = 64! tada, you see all 26 letters from 65 to 90!
        if (e.which >= 65 && e.which <= 90) newInp.focus();

        // if you wanted to focus it for numbers too ...
        // numbers on qwerty side of key board are 48 - 57
        if (e.which >= 48 && e.which <= 57) newInp.focus();
        // numbers on num lock side tend to be 96 - 105
        if (e.which >= 96 && e.which <= 105) newInp.focus();
    });
});
...