【发布时间】:2010-08-16 19:50:43
【问题描述】:
我一定很厚,因为我一辈子都无法让 jQuery 自动完成功能正常工作。我搜索了很多示例,似乎其中大多数使用的是旧版本的 jQuery。我直接从 jQuery UI 站点找到了一个相当不错的例子:http://jqueryui.com/demos/autocomplete/#remote-jsonp 所以我模仿了那个例子。当我在输入框中输入时,输入框下方会弹出一个小的自动完成框,但自动完成框中没有任何内容。 jQuery 没有正确加载我的数据。
我的数据源是一个返回 JSON 数据的 URL。示例:
[{
"pk": 1,
"model": "concierge.location",
"fields": {
"online": false,
"link": "",
"email": "",
"address": "TBA"
}
}, {
"pk": 2,
"model": "concierge.location",
"fields": {
"online": false,
"link": "",
"email": "",
"address": "UB 2008"
}
}]
我的 Javascript 代码:
$(document).ready(function() {
$("input#id_location_address").autocomplete({
max: 10,
source: function(request, response) {
$.ajax({
url: "/concierge/autocomplete/locations/",
dataType: "json",
data: request,
success: function( data ) {
console.log( data )
response( data, function(item) {
return { label: item.address, value: item.address }
});
}
});
}
});
});
所以当我在 Firebug 中console.log(data) 时,它会显示带有所有数据的对象。我认为我没有在我的 Javascript 代码中正确访问“地址”。真的,我只想在自动完成框中弹出“地址”。我该怎么做?
提前致谢,
克里斯
【问题讨论】:
标签: javascript jquery json autocomplete