Понимание и реализация автозаполнения jQuery с исходным кодом и приложением AJAX
Ниже моя попытка получитьappendTo
работать с автозаполнением jQuery с AJAX источником.
У меня есть несколько вопросов, которые, надеюсь, помогут многим другим, которые борются с пониманием правильного способа реализации автозаполнения с помощью источника AJAX.
1) source: function(request, response) {...}
Что это делает? Зачем это нужно?
2) Какой форматfunction(data){ response($.map (data, function(obj) {
вернуть данные в? Я понимаю, что данные в формате JSON, но какой смысл.map
? Нужно ли это делать? Есть ли преимущества?
3а) При использованииappendTo
а такжеrenderItem
, необходимо ли иметь вышеупомянутоеsuccess
данные вернулись?
3b) Либо, либо, в зависимости от приведенных выше данных, как правильно использовать appendTo и renderItem для изменения форматирования и отображения полученных значений?
$(function() {
$( ".find_group_ac" ).autocomplete({
minLength: 1,
source: function(request, response) {
$.ajax({
url: "welcome/search/",
data: { term: $(".find_group_ac").val()},
dataType: "json",
type: "POST",
success: function(data){ response($.map
(data, function(obj) {
return {
label: obj.name + ': ' + obj.description,
value: obj.name,
id: obj.name
};}));}
});
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};
});
Это может показаться большим ответом, но я уверен, что это будет полезно для многих новичков в JavaScript и, конечно, для меня.