jQuery 自动完成远程 JSON 数据源不返回数据

标签 jquery autocomplete

我一直在努力解决这个问题,并搜索了所有其他示例,但似乎仍然无法弄清楚,尝试使用 jquery ui 自动完成,第一次尝试将所有这些放在一起。这是我的 JS:

$(document).ready(function () {
$("#search-title").autocomplete({
    source: function ( request, response ) {
        $.ajax({
            url: "/include/autocomplete",
            dataType: "json",
            data: {
                        term: request.term      
                    },
            success: function (data) {
                response( $.map( data.stuff, function ( item ) {
                    return {
                        label: item.name,
                        value: item.name
                    };
                }));
            }
        });
    },
    minLength: 2,
    focus: function (event, ui) {
        $(event.target).val(ui.item.label);
        return false;
    },
    select: function (event, ui) {
        $(event.target).val(ui.item.label);
        window.location = ui.item.value;
        return false;
    }
});
});

查看 Firebug 中的响应,我想我在这里得到了格式正确的 JSON:

{"stuff":[ {"label" : "Dragon", "value" : "http://site.com/animal/firebreathers"}] }

但由于某种原因它没有连接。当我点击 minLength 后,搜索字段下方会打开一个小的空框,但里面什么也没有。

更新:当我添加“alert(item);”时在响应调用中,我收到一个窗口,显示“site.com 的页面显示:object Object”——这可能是问题所在吗?

最佳答案

感谢我问题下的提示评论,我终于弄清楚了。

在我从 Jquery UI 网站复制的返回中,我有:

label: item.name,
value: item.name

将其更改为:

label: item.label,
value: item.value

解决了我与 jQuery 的斗争。我不知道这是否是一个好的做法,但它终于起作用了!

关于jQuery 自动完成远程 JSON 数据源不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631640/

相关文章:

git - 如何让 bash 补全与别名一起使用?

javascript - 如何使用 show-hint 插件订阅 CodeMirror 中的选择事件?

jquery - 销毁 jQuery 自动完成功能

jquery - 如何使用 jQuery 检测滚动?

javascript 不在 IE8/9 中运行,但在查看控制台时运行

jquery - MVC4 中使用 Knockout.js 的级联下拉菜单,JSON 根据验证器返回有效的 JSON,但 Jscript 出现无效字符错误

jQuery 自动完成下拉框

javascript - Google map 自动完成 this.setValues 不是函数

javascript - 为什么 jQuery 的 .val() 返回 null?

javascript - Jquery 用户界面 : clone the widget