我一直在成功地使用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