我正在使用Jquery UI的自动完成功能,我可以在Firebug中看到正确的JSON数据。但是,没有任何东西回到文本框。
我的JavaScript:
$(function() {
function log( message ) {
$( "<div/>" ).text( message ).prependTo( "#log" );
}
$("#tags").autocomplete({
source: function(request, response){
$.ajax ({
url: "/projectlist",
dataType: "json",
data: {style: "full", maxRows: 12, term: request.term}
});
}
})
});
您可以看到从片段中返回JSON数据。但结果表中没有显示任何内容。这看起来应该像JQuery自动完成示例JQuery Autocomplete
答案 0 :(得分:0)
显示Noyhing是因为你没有回复我认为:你必须在你的ajax调用中添加e成功函数(我添加了一个成功响应的例子,如果你告诉我们你的json是如何被篡改的,我可以帮助你更好。你必须返回一个对象数组,每个对象应该有一个名为'label'的属性和一个名为'value'的属性:
$("#tags").autocomplete({
source: function(request, response) {
$.ajax({
url: "/projectlist",
dataType: "json",
data: {
style: "full",
maxRows: 12,
term: request.term
},
success: function(data) {
var results = [];
$.each(data, function(i, item) {
var itemToAdd = {
value: item,
label: item
};
results.push(itemToAdd);
});
return response(results);
}
});
}
});
我在这里设置了一个小提琴:http://jsfiddle.net/nicolapeluchetti/pRzTy/(想象'数据'是返回的json)