Poniżej znajduje się moja próba uzyskania appendTo
do pracy z autouzupełnianiem jQuery ze źródłem AJAX.Opis i implementacja autouzupełniania jQuery ze źródłem AJAX i appendTo
Mam wiele pytań, które, mam nadzieję, pomogą wielu osobom, które zmagają się ze zrozumieniem prawidłowego sposobu implementacji autouzupełniania i źródła AJAX.
1) source: function(request, response) {...}
Co to oznacza? Dlaczego jest potrzebny.
2) W jakim formacie zwracane są dane w postaci function(data){ response($.map (data, function(obj) {
? Rozumiem, że dane są w formacie JSON, ale jaki jest sens .map
? Czy to konieczne? Czy są jakieś korzyści?
3a) Czy przy korzystaniu z appendTo
i renderItem
należy zwrócić wyżej wymienione dane success
?
3b) Czy poprawnie używasz appendTo i renderItem, aby zmienić formatowanie i wyświetlanie pobranych wartości, lub, w zależności od powyższych danych?
$(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);
};
});
To może wydawać się bardzo pomocne, ale jestem przekonany, że będzie to cenne dla wielu początkujących javascriptów i na pewno dla siebie.
Dziękuję, to bardzo pouczające. –
Dziękuję :) uratowałem mój dzień! –
Dzięki za ten fragment. Zwróć uwagę, że po opisie nie ma przecinka (,): obj.description – Danilo