我正在使用JSON的自动完成小部件使用JSON进行解析但不起作用,显示所有json数据。
请帮帮我
这是我的剧本:
$(function() {
$( "#test2" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://some_link/folder/file.json",
dataType: "json",
data: {terms: request.term},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item.city+' ('+item.country_name+'), '+item.currency,
value: item.city
}
}));
}
});
},
minLength: 2,
});
});
这是json
[{"country_name":"DENMARK","city":"Aalborg","currency":"EUR"},{"country_name":"DENMARK","city":"Aarhus","currency":"EUR"}]
这是html
<div class="form-box">
<center><label style="color:white;">City <small>*</small></label></center>
<input type="text" class="text" id="test2" placeholder="Your City">
</div><!-- End Box -->
请帮忙!
TNX
答案 0 :(得分:0)
您似乎没有将过滤器应用于请求的json文件。您正在获取整个文件。我现在假设您提到的json文件是一个普通的json文件(意思是,它没有创建它的服务器端代码)。
您可以执行以下两项操作:a)修改$.map
内的退货功能,以便删除所有不符合您的过滤条件的值(即,您可以移除不包含过滤的城市)给出的部分文字)。为了找到符合条件的值,您可以使用像this这样简单的内容。
或者b)您可以使用某些服务器语言(如PHP,Java,C#等)创建JSOn服务器端,在那里,您可以阅读terms
上传递的data
参数在那里$.ajax
并通过服务器端执行过滤。然后,您只需返回实际符合条件的值。