Dưới đây là nỗ lực của tôi khi nhận được appendTo
để làm việc với jQuery autocomplete với nguồn AJAX.Hiểu và triển khai thực hiện tự động hoàn thành jQuery với nguồn AJAX và appendTo
Tôi có nhiều câu hỏi, hy vọng sẽ giúp nhiều người khác đang đấu tranh với việc hiểu đúng cách để triển khai tự động hoàn thành với nguồn AJAX.
1) source: function(request, response) {...}
Điều này làm gì? Tại sao nó là cần thiết.
2) Định dạng nào function(data){ response($.map (data, function(obj) {
trả về dữ liệu? Tôi nhận ra dữ liệu ở định dạng JSON, nhưng quan điểm của .map
là gì? Có cần thiết để làm điều này? Có lợi ích gì không?
3a) Khi sử dụng appendTo
và renderItem
, bạn có cần phải trả lại dữ liệu success
được đề cập ở trên không?
3b) Hoặc là, tùy thuộc vào dữ liệu ở trên, bạn sử dụng đúng cách appendTo và renderItem để thay đổi định dạng và hiển thị các giá trị đã truy xuất của bạn như thế nào?
$(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);
};
});
Điều này có vẻ như rất nhiều câu trả lời, nhưng tôi chắc chắn nó sẽ có giá trị đối với nhiều người mới sử dụng javascript và chắc chắn là bản thân mình.
Cảm ơn bạn, điều này rất nhiều thông tin. –
Cảm ơn bạn :) đã lưu lại ngày của tôi! –
Cảm ơn đoạn mã này. Xin lưu ý rằng dấu phẩy (,) bị thiếu sau khi mô tả: obj.description – Danilo