jQuery Автозаполнение Предотвращение первого входа? - PullRequest
0 голосов
/ 18 сентября 2011

У меня есть следующий код - http://jsfiddle.net/vcvsb/1/ - за

$(document).ready(function(e) {
    $("input#autocomplete").autocomplete({
        source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
    });
    jQuery("#autocomplete").keypress(function (e) {
        if (e.keyCode == 13) {
          $('#buttontest').trigger('click');
          alert('crap, clicked');  
        }
    });
  });

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

Как я могу настроить его так, чтобы:

  1. Пользователь может использовать клавиши со стрелками для перехода к выбору, а затем нажать клавишу ввода
  2. После нажатия клавиши ввода пользователь может продолжать вводить
  3. Если пользователь нажимает клавишу ввода еще раз, он вызываетнажмите

?

Ответы [ 2 ]

0 голосов
/ 07 мая 2012

Лучшее решение - проверить, фокусируется ли какое-либо из ваших полей ввода, и в противном случае игнорировать ENTER. С jQuery> = 1.6 вы можете сделать следующее:

if(e.keyCode == 13) {
    if($("#input").is(":focus")) {

      // then click the button
      $("#button").click();
    }

}

Это будет игнорировать любое другое событие ENTER, кроме того, которое вы хотите;)

0 голосов
/ 18 сентября 2011

хорошо вроде как взломать, но работает http://jsfiddle.net/amantur/hhUdV/. Вы должны вести подсчет того, как может нажиматься ENTER. При повторном нажатии кнопки триггера.

...