我一直在成功地使用Jquery自动完成。最近,我升级到新版本的jquery和jquery ui,并且我得到了相同代码的错误。Jquery自动完成代码适用于旧版本的Jquery,但不适用于更高版本
工作版本: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湖”},{“LakeId”:“MH:Moosehead湖”},{“LakeId”:“MOUSAM:Mousam湖”},{“lakeId” “MS:Messalonskee Lake”},{“lakeId”:“MSLK:Mooselookmeguntic”}]“
使用jQuerymigrate(https://github.com/jquery/jquery-migrate)它提供向后兼容性 – Shalini