Jquery автозаполнение при загрузке - PullRequest
0 голосов
/ 26 марта 2020

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

Вот пример того, что я делаю:

$('#auto-complete').autocomplete({
    source:function(){//get data here},
    select:function(e,ui){
     //setting fields here: 
      $('#user').val("");
    },
   focus:function(){}

});

Я исследовал добавление функции ответа, но даже это, кажется, требует сначала измените поле автозаполнения.

1 Ответ

0 голосов
/ 28 марта 2020

Вы можете использовать обратный вызов Response:

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

Источник: https://api.jqueryui.com/autocomplete/#event -response

$(function() {
  /*
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    */

  var availableTags = [
    "ActionScript"
  ];


  $("#tags").autocomplete({
    source: availableTags,
    minLength: 0,
    response: function(e, ui) {
      if (ui.content.length == 1) {
        $(this).val(ui.content[0].value);
        $(this).autocomplete("close");
      }
    }
  });

  $("#tags").autocomplete("search", "");
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>

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

В качестве альтернативы, вы можете проверить результаты, прежде чем отправлять результаты на response(), и если они равны только 1, установите value в это время.

...