2012-05-09 70 views
0

我在組合框中使用Jquery ui自動完成插件,並從JSON文件中讀取值。問題出在我的JSON文件中。我有具有相同價值的字段。喜歡這個。 ({ 名字:一個 }, { 名稱:一個 }, { 名稱:B })Jquery自動完成功能,在組合框中具有唯一值

所以,當我輸入 'A' 在組合框中,它給了我2 'A'秒。但我只需要一個(我只需要JSON文件中的唯一值)。我該怎麼做呢?我現在沒有完整的代碼,這就是爲什麼我不能說。對不起,謝謝。

回答

1

編輯:你可以使用類似的東西從json數組中刪除重複的條目,然後將數據發送到jQuery自動完成插件。

var names = {}; 
var param = "name" 
$.each(data.people, function() { 
    if (!names[this[param]]) 
     names[this[param]] = []; 
    names[this[param]].push(this); 
}); 

然後我們可以做source: names

+0

謝謝@farhanahmad所以我現在要做的是,把JSON文件並將其分配給來自'source:'元素的jQuery自動完成插件。所以它就像'源:人'。 'people'是我的JSON文件。你建議先生是不是直接給人'JSON文件,過濾它的唯一值。好。我明白那個。但在此之後,我如何將它設置爲'source'屬性? – thilok

+0

我更新了我的答案:) –

+0

非常感謝您寶貴的時間。將嘗試這一點,讓你知道。 @FarhanAhmad – thilok

1

試試這個....唯一的值可以在輸入字段中添加

select: function(event, ui) { 

     var terms = split(this.value); 
     // remove the current input 
     terms.pop(); 
     // add the selected item 

     if(!($.inArray(ui.item.value,terms) > -1)) 
     terms.push(ui.item.value); 


     // add placeholder to get the comma-and-space at the end 
     terms.push(""); 
     this.value = terms.join(", "); 
     return false; 
    }