Jquery UI自动完成显示所有数据

时间:2014-07-26 00:24:07

标签: javascript jquery json autocomplete

我正在使用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

1 个答案:

答案 0 :(得分:0)

您似乎没有将过滤器应用于请求的json文件。您正在获取整个文件。我现在假设您提到的json文件是一个普通的json文件(意思是,它没有创建它的服务器端代码)。

您可以执行以下两项操作:a)修改$.map内的退货功能,以便删除所有不符合您的过滤条件的值(即,您可以移除不包含过滤的城市)给出的部分文字)。为了找到符合条件的值,您可以使用像this这样简单的内容。

或者b)您可以使用某些服务器语言(如PHP,Java,C#等)创建JSOn服务器端,在那里,您可以阅读terms上传递的data参数在那里$.ajax并通过服务器端执行过滤。然后,您只需返回实际符合条件的值。