JQuery UI Autocomplete - открывайте меню, когда пользователь щелкает текстовое поле - PullRequest
5 голосов
/ 06 декабря 2011

Я использую этот виджет автозаполнения JQuery .

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

Ответы [ 3 ]

21 голосов
/ 06 декабря 2011

Вам необходимо вручную запустить событие search и установить для параметра minLength виджета значение ноль:

$("input").autocomplete({
    minLength: 0,
    /* other options */
}).on("focus", function () {
    $(this).autocomplete("search", "");
});

Рабочий пример: http://jsfiddle.net/9JmVu/

1 голос
/ 30 июня 2016

Как объяснил Эндрю, вам нужно вызвать событие.

Но как только вы получите результат от запроса ajax, лучше снова показать результаты, а не запрашивать сервер снова.Значение minLength не зависит, может быть равно 2, как рекомендуется для запросов к серверу.

$("input").autocomplete({
    minLength: 2,
    /* your options */
}).on("focus", function () {
    /* the element with the search results */
    var uid = $("#ui-id-"+$(this).autocomplete("instance").uuid);

    if(uid.html().length == 0) {
        /* same as $(this).autocomplete("search", this.value); */
        $(this).keydown();
    }
    else {
        uid.show();
    }
});
1 голос
/ 06 декабря 2011

Я думаю, я понял это на самом деле.Если вы установите minLength на 0, а затем запустите поиск "", откроется меню.

      $(inputSelector).autocomplete(
              {
                  source: this.validConstructCodes,
                  minLength: 0,
                  autoFocus: true,
                  autoSelect: true
              });
      $(inputSelector).focus(function(event) {
        $(this).autocomplete( "search" , "" );
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...