【发布时间】:2012-07-30 21:06:37
【问题描述】:
下面是我尝试让appendTo 使用带有 AJAX 源的 jQuery 自动完成功能。
我有多个问题,希望能帮助许多正在努力理解使用 AJAX 源代码实现自动完成的正确方法的其他人。
1) source: function(request, response) {...}
这是做什么的?为什么需要它。
2) function(data){ response($.map (data, function(obj) { 以什么格式返回数据?我意识到数据是 JSON 格式的,但.map 的意义何在?有必要这样做吗?有什么好处吗?
3a) 使用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 新手和我自己来说都很有价值。
【问题讨论】:
标签: javascript ajax jquery-ui jquery-ui-autocomplete