jquery autocomplete在从本地存储中检索数据时显示奇怪的消息

时间:2017-06-01 11:55:53

标签: jquery autocomplete local-storage jquery-ui-autocomplete

可能是我无法在网上正确搜索这个。目前我遇到的问题是我正在使用jquery自动完成localStorage意味着如果用户的本地存储有数据使用,否则它将进行AJAX调用并将数据发送到自动完成现在的情况就好像我通过AJAX自动完成工作正常但是如果是来自本地存储,它会显示错误,如

jquery-1.11.0.js:9666 GET http://localhost:8080/organizationSource/[%…value%22:%%22,%%22:%225625%22%7D]?term=ll&_=149631722767 400

我的代码就像

if(localStorage.getItem("orgListandIds")!==undefined && localStorage.getItem("orgListandIds")!==null){
	var data=localStorage.getItem("orgListandIds");
	callAutocomplete(data);
}
else{	
	$.ajax({
		url:"/organizationSourceMapping/loadOrgs.htm",
		dataType:"json",
		success:function(data){
			localStorage.setItem("orgListandIds",data);
			callAutocomplete(data)
		}
	})
}
}
function callAutocomplete(data){
	$("#searchByText").autocomplete({
		maxShowItems:5,
		minLength:2,
		autoFocus: true,
		source:data,
		select:function(event,ui){
	
			idValue=ui.item.idValue;
		}


});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

我尝试使用JSON.stringify在localStorge中存储数据,但这也是工作

1 个答案:

答案 0 :(得分:0)

在挣扎之后,我得到了存储正在返回JSON对象的建议,我需要在发送到自动完成之前进行解析。所以我做了这样的改变

if(localStorage.getItem("orgListandIds")!==undefined && localStorage.getItem("orgListandIds")!==null){
	var data=localStorage.getItem("orgListandIds");
	callAutocomplete(JSON.parse(data));
}
else{	
	$.ajax({
		url:"/organizationSourceMapping/loadOrgs.htm",
		dataType:"json",
		success:function(data){
			localStorage.setItem("orgListandIds",JSON.stringify(data));
			callAutocomplete(data)
		}
	})
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>