使用JQuery UI显示自动完成不显示结果

时间:2011-07-27 11:09:33

标签: javascript ruby-on-rails-3 jquery-ui jquery-ui-autocomplete

我正在使用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

Snippet of what browser returns in firebug

1 个答案:

答案 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)