jQuery UI自动完成不显示AJAX结果
我试图构建一个自动完成表单,它将在用户输入时从外部数据库(返回JSON)加载JSON。我的代码似乎工作正常,因为它将记录包含多个JSON对象的数组。但是,jQueryUI不会在页面本身上显示结果 HTML 有什么问题吗?谢谢你的关心。试试:jQuery UI自动完成不显示AJAX结果,jquery,json,ajax,jquery-ui,Jquery,Json,Ajax,Jquery Ui,我试图构建一个自动完成表单,它将在用户输入时从外部数据库(返回JSON)加载JSON。我的代码似乎工作正常,因为它将记录包含多个JSON对象的数组。但是,jQueryUI不会在页面本身上显示结果 HTML 有什么问题吗?谢谢你的关心。试试: $("#tags").autocomplete({ minLength: 2, source: function( request, response ) { $.getJSON("http://fo
$("#tags").autocomplete({
minLength: 2,
source: function( request, response ) {
$.getJSON("http://forums.zybez.net/runescape-2007-prices/api/"+request.term, function(data){
var items = [];
$.each( data, function(key, val){
items.push(val);
});
console.log(items); // Shows correct results
response(items);
});
}
});
请参阅:多亏了Madalin的回答和O.A.的评论,我找到了解决方案:
function createUrl(input){
var url = "http://forums.zybez.net/runescape-2007-prices/api/" + input;
return url;
}
$("#tags").autocomplete({
minLength: 2,
source: function( request, response ) {
var term = this.term;
var url = createUrl(term);
$.getJSON(url, function(data){
var items = [];
$.each( data, function(key, val){
items.push(val);
});
response(items);
});
}
});
当设置自动完成的源时,如下所示:
$("#btnArtist").autocomplete({ source: "/Ajax/Home/AutoCompleteData" });
您可以在控制台中看到从服务器返回的JSON数据,但它不会显示结果
将URL更改为Ajax对象修复了我的问题。以下是工作代码:
$("#btnArtist").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Ajax/Home/AutoCompleteData",
data: {
term: request.term
}
}).done(function (data) {
response(data);
});
}
})
您调用此函数的位置可能重复
getSource
?您的问题可能是您只在getJSON
回调函数中返回结果,而您的函数getSource
没有返回任何内容….@A.O.我正在考虑类似的事情!我怎么能解决这样的问题?那是行不通的。首先,因为getSource根本没有被触发,其次,因为我需要autocomplete函数来触发getSource函数,而不是反过来。你想用这些数据做什么,这些数据是用来做什么的?我想给用户建议的数据,这些数据是根据输入从API检索的。是的,我尝试过这个。但是现在的问题是url(应该基于用户的输入)未设置。
$("#btnArtist").autocomplete({ source: "/Ajax/Home/AutoCompleteData" });
$("#btnArtist").autocomplete({
source: function (request, response) {
$.ajax({
url: "/Ajax/Home/AutoCompleteData",
data: {
term: request.term
}
}).done(function (data) {
response(data);
});
}
})