我过去一直在成功使用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"}]"
答案 0 :(得分:0)
我能够通过逐步将Jquery的版本从1.8增加到2.2.3来解决问题,这是Visual Studio 2015 Nuget提供的最新版本。我不确定上次会有什么不同,但它现在有效。