2016-01-19 43 views
1

下面的代碼工作正常。我要求的是我要過濾json數據的幫助,也就是我想要顯示大於或等於3的相應id的標籤。在JQuery中過濾Json數據easyautocomplete

在這種情況下,應該只顯示「印度」和「法國「的建議名單。

請注意,我使用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); 

回答

1

嘗試了這一點,

$(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); 
 
});
<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>

+0

是的。它運行良好。謝謝。 – riyaz

+0

沒問題。爲它工作感到高興。祝你好運 –

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); 
    } 
}); 

注:」將需要加載選項變量與GET aj ax請求在json文件上使用已過濾而不是選項在您的自動完成中。

這裏是用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); 
    } 
}); 
+0

我的JSON文件太長,我應該保持這種作爲一個遠程文件,而不是像你所做的那樣。 – riyaz

+0

我編輯了我的答案,包括使用ajax查詢和自動完成初始化加載數據。 –