Неправильная работа автозаполнения jquery-ui - PullRequest
0 голосов
/ 01 февраля 2019

Сразу после перезагрузки страницы при вводе одного символа на входе ничего не происходит.при вводе следующие символы начинают дополнять.

Получить данные

`function getData(data, callback) {
            $.ajax({
                url: "myUrl" + encodeURIComponent(data),
                method: "GET",
                dataType: "JSON",
                success: callback
            })
        }`

Функция обратного вызова

 `function autocompleteInput () {
       var dataInput = $("#myInput").val();
       function success(data) {
         var dataArr = [];
         for (var i = 0; i < data.data.length; i++) {
           dataArr.push(data.data[i].name);
               }
                    $("#myInput").autocomplete({
                        source: brokersNameArr,
                        delay: 500,
                        minLength: 1
                    })
                  getData(dataInput, success);
       }`

Использовать в html

$("#myInput").keyup($.throttle(200, autocompleteInput));

1 Ответ

0 голосов
/ 02 февраля 2019

Рекомендуется следующее:

var dataArr = [];
$("#myInput").autocomplete({
  source: function(req, resp){
    $.getJSON("myurl?" + req.term, function(results){
      $.each(results.data, function(k, r){
        dataArr.push(r.name);
      });
      resp(results);
    });
  },
  delay: 500,
  minLength: 1
});

Вы также можете просмотреть: http://jqueryui.com/autocomplete/#multiple-remote

Использование функции для source даст вам возможность управлять тем, как данныеотправлено и получено.

Функция : третий вариант, обратный вызов, обеспечивает наибольшую гибкость и может использоваться для подключения любого источника данных к автозаполнению, включая JSONP.Обратный вызов получает два аргумента:

  • Объект запроса с одним свойством term, которое ссылается на значение, которое в данный момент находится в текстовом вводе.Например, если пользователь вводит "new yo" в поле города, термин автозаполнения будет равен "new yo".

  • A response обратного вызова, который ожидает один аргумент: данныепредложить пользователю.Эти данные должны быть отфильтрованы на основе предоставленного термина и могут быть в любом из форматов, описанных выше для простых локальных данных.Это важно при предоставлении пользовательского обратного вызова источника для обработки ошибок во время запроса.Вы должны всегда вызывать обратный вызов response, даже если вы столкнулись с ошибкой.Это гарантирует, что виджет всегда имеет правильное состояние.

Надеюсь, это поможет.

...