在jquery easyautocomplete中过滤Json数据

时间:2016-01-19 13:15:05

标签: javascript jquery json autocomplete jquery-autocomplete

以下代码运行正常。我要求帮助我想过滤json数据,也就是说我要显示相应id大于或等于3的标签。

在这种情况下,应仅显示"印度"和#34;法国"在建议清单中。

请注意,我使用了Easy autocomplete plugin

如果有人能帮助我,我真的很感激。提前致谢

下面的

是我的json文件

  

countries.json

[
{
"id": "0.1",
"label": "America" },{
"id": "0.9",
"label": "UAE" },{
"id": "3.2",
"label": "India"},{
"id": "3.02",
"label": "France" } ]

HTML

  

的index.php

<div class="form-group">
                    <input id="city" type="text" name="city" class="form-control" />
                </div>

和脚本是:

  

的script.js

$(function() { var options = { url: "../review/countries.json", getValue: function(element) {
 return element.label; list: {
match: {
  enabled: true
} }; $("#city").easyAutocomplete(options);

2 个答案:

答案 0 :(得分:2)

试试这个,

&#13;
&#13;
$(function() {

  var options = {
    url: "../review/countries.json",
    getValue: function(element) {
      var id = parseFloat(element.id);
      if (id > 3) {
        return element.label;
      } else {
        return '';
      }

    },
    list: {
      match: {
        enabled: true
      }

    }

  };
  $("#city").easyAutocomplete(options);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://easyautocomplete.com/dist/jquery.easy-autocomplete.min.js"></script>
<div class="form-group">
  <input id="city" type="text" name="city" class="form-control" />
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这是迭代抛出项目数组的代码:

var options = [
    { "id": "0.1", "label": "America" },
    { "id": "0.9", "label": "UAE" },
    { "id": "3.2", "label": "India"},
    { "id": "3.02", "label": "France" }
];

var filtered = new Array();
$.each(option, function(index, item) {
    if(item.id >= 3) {
        filtered.push(item);
    }
});

注意:您需要在json文件上加载带有GET ajax请求的选项变量,然后使用过滤而不是选项在您的自动填充功能中。

以下是ajax加载的完整示例:

$(document).ready(function(){
    $.getJSON("../review/countries.json", function(data) {
        var filtered = new Array();
        $.each(option, function(index, item) {
            if(item.id >= 3) {
                options.push(item);
            }
        });
        var options = {
            data: filtered
        };
        $("#city").easyAutocomplete(options);
    }
});