jQuery UI自动完成不显示AJAX结果

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

我试图构建一个自动完成表单,它将在用户输入时从外部数据库(返回JSON)加载JSON。我的代码似乎工作正常,因为它将记录包含多个JSON对象的数组。但是,jQueryUI不会在页面本身上显示结果

HTML

有什么问题吗?谢谢你的关心。

试试:

 $("#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);
        });
    }
})