Отображать прядильщик с автозаполнением jQuery-ui

Я искал повсюду и просто не вижу, чтобы кто-то это делал - возможно ли иметь какой-то счетчик/загрузчик с автозаполнением jQuery UI? (1.8), пока данные извлекаются?

Ответы

Ответ 1

Вы должны иметь возможность поместить изображение прядильника рядом с полем с автозаполнением и скрыть его на начальном этапе. Затем используйте функции обратного вызова, чтобы скрыть/показать его.

Затем используйте опцию поиска, чтобы показать счетчик и открыть, чтобы скрыть его:

v1.8 и ниже

$( ".selector" ).autocomplete({
   search: function(event, ui) { 
       $('.spinner').show();
   },
   open: function(event, ui) {
       $('.spinner').hide();
   }
});

v1.9 и вверх

$( ".selector" ).autocomplete({
   search: function(event, ui) { 
       $('.spinner').show();
   },
   response: function(event, ui) {
       $('.spinner').hide();
   }
});

Ответ 2

Моим решением было использовать CSS-класс загрузки .ui-autocomplete-loading, который добавляется и удаляется во входном элементе, когда выполняется запрос AJAX GET:

input[type='text'].ui-autocomplete-loading {
    background: url('/icons/loading.gif') no-repeat right center;
}

Предоставлено это не очень гибкое решение, так как вы не можете отображать счетчик вне элемента ввода, но в моем случае это именно тот UX, который я искал.

Ответ 4

Решение CSS

Если элемент загрузки является дочерним элементом входного элемента управления, тогда может использоваться общий комбинированный сиб. (~) CSS:

.loading {
    /* whatever */
}
#autocomplete.ui-autocomplete-loading ~ .loading {
    background-image: url(loading.gif);
}

Рабочий пример
Альтернативное (jQuery) решение

Ответ 5

input[type='text'].ui-autocomplete-loading {

background:  url('http://www.hsi.com.hk/HSI-Net/pages/images/en/share/ajax-loader.gif')          no-repeat
 right center;

}