Jquery自动完成代码适用于旧版本的Jquery,但不适用于更高版本

时间:2016-04-27 17:10:51

标签: jquery autocomplete

我过去一直在成功使用Jquery自动完成功能。最近,我升级到jquery和jquery ui的新版本,我收到相同代码的错误。

工作版本:jquery 1.8.2,jquery ui 1.8.24 失败的版本:jquery 1.10.2,jquery ui 1.11.4

以下是Jquery自动填充代码:

    $('#lakeId').autocomplete({
        delay: 1000,
        minLength: 0,
        source: function (request, response) {
            $.ajax({
                url: '@Url.Action("getLakes","BuoyJS")',
                type: "GET",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.lakeId, value: item.lakeId };
                    }))
                }
            })
        },
    });

当它失败时,我收到一条消息,表明在从服务器成功返回后,在响应$ .map语句中找不到函数。这是从服务器返回的内容的视图(来自Firebug):

以下是返回给浏览器进行解析的JSON字符串。我通过选择responseText参数从Firebug得到了这个。

" [{" lakeId":" M:Maranacook Lake"},{" lakeId":" MH:Moosehead Lake&# 34;},{" lakeId":" MOUSAM:Mousam Lake"},{" lakeId":" MS:Messalonskee Lake"}, {" lakeId":" MSLK:Mooselookmeguntic"}]"

1 个答案:

答案 0 :(得分:0)

我能够通过逐步将Jquery的版本从1.8增加到2.2.3来解决问题,这是Visual Studio 2015 Nuget提供的最新版本。我不确定上次会有什么不同,但它现在有效。