jQueryUI Автозаполнение: триггер на фокусе текстового поля - PullRequest
2 голосов
/ 16 ноября 2011

Я пытаюсь заставить экземпляр автозаполнения jQuery открываться в фокусе текстового поля и получать данные из удаленного источника.Приближение моей попытки показано здесь:

http://jsfiddle.net/Ug2aG/1/

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

Есть ли лучший способ сделать то, что я пытаюсь достичь?

Ответы [ 2 ]

6 голосов
/ 16 ноября 2011

Вот решение, которое не слишком хакерское:

$('#tags').focus(function() {
    /* Only search if the autocomplete menu is hidden: */
    if ($("ul.ui-autocomplete").is(":hidden")) {
        $(this).autocomplete('search', '');
    }
});

Обновленный пример: http://jsfiddle.net/9x3hu/

Если вам интересно, вот строка , которая вызывает у вас горе. Похоже, что после выбора элемента input, на который нацелен виджет, фокусируется автоматически.

Это может показаться странным, но, вероятно, это связано с использованием стрелок UP и DOWN для навигации по выпадающему списку. В этом случае вы бы хотели, чтобы фокус вернулся к input.

0 голосов
/ 16 ноября 2011

это потому что вы используете append ..

попробуйте это:

$('#status').html('<br />getting values...');
...