Автозаполнение, чтобы показать все параметры в фокусе. Как?

Я использую автозаполнение jQuery UI.

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

Что у меня есть прямо сейчас

var $sessionTimes = "00:00 00:15 00:30 00:45 1:00 1:15".split(" ");
$(".autocompleteTime").autocomplete($sessionTimes);

<input type="text" class="autocompleteTime" size="5" />

person krishna    schedule 23.09.2009    source источник


Ответы (5)


Вы должны установить minChars равным 0, например:

$('.autocompleteTime').autocomplete($sessionTimes, {minChars: 0});

Также обратите внимание, что вам не нужно начинать имя переменной с $, вы можете просто написать sessionTimes везде, где вы его используете, и все будет в порядке. Вероятно, исходит из фона PHP? :)

person inkredibl    schedule 23.09.2009
comment
Спасибо инкредибл. Это работает. Ну, я люблю доллары больше, тем лучше :) - person krishna; 23.09.2009
comment
Я пробовал это, но вам все равно нужно нажать стрелку вниз или щелкнуть элемент управления, чтобы показать параметры автозаполнения. - person Fajar; 13.10.2009
comment
Может быть, из-за фона Perl? - person alex; 11.06.2010
comment
@Fajar Что ты имеешь в виду? Конечно, пользователь должен активировать его. Если вы хотите, чтобы он срабатывал автоматически, просто вызовите на нем click(), то есть $('.autocompleteTime').click() - person alex; 11.06.2010
comment
К вашему сведению, в последних версиях плагина это называется minLength. - person davidtbernal; 21.01.2011
comment
@alex Я думаю, что @Fajar имел в виду, что он не срабатывает при первоначальном фокусе - когда пользователь впервые щелкает текстовое поле автозаполнения, он не получает раскрывающийся список. Ему все равно придется вводить символ или нажимать стрелку вверх, чтобы получить предложения. - person tstyle; 28.03.2011
comment
Потрясающий! Мне нужно было сделать то, что @Fajar хотел сделать. $('.autocompleteTime').click(function(e){ $('#' + e.target.id).keydown() }); для этого примера подойдет. И поправка @notJim была правильной. - person Furbeenator; 26.07.2012

Это правильный ответ:

    $('.autocompleteTime').autocomplete($sessionTimes, {minChars: 0})
    .focus(function () {
        $(this).autocomplete('search', $(this).val())
    });
person RayLoveless    schedule 26.02.2016

Выбранный ответ немного устарел и на самом деле не сработал для меня, поэтому для меня сработало следующее:

$('#selector')
    //use minLength when initializing so that empty searches work
    .autocomplete({..., minLength: 0})
    //trigger the search on focus
    .focus(function(){
        $(this).autocomplete('search', $(this).val());
    })

Кредиты на комментарий @notJim выше и этот вопрос: Показать jquery автозаполнение пользовательского интерфейса при событии фокуса, и мне

person Ahmed-Anas    schedule 11.07.2016

Посмотрите пример поля со списком автозаполнения jQuery Ui:

http://jqueryui.com/demos/autocomplete/#combobox

person mynameistechno    schedule 20.03.2012

Этот модуль теперь включен в пользовательский интерфейс jQuery. В этом посте рассказывается, как решить эту проблему сейчас:

Автозаполнение пользовательского интерфейса Jquery; minLength:0 проблема

person jerrygarciuh    schedule 13.05.2012