2013-03-15 61 views
2

我有/ API此JSON /搜索文件:限制1選擇2建議存在2個或更多平等的結果

[{"id":"513dbb61a61654a845000005","text":"ingeniero agrónomo"},{"id":"513a11d4a6165411b2000008","text":"ingeniero agrónomo"}] 

我使用的是選擇2顯示結果。

這是我選擇2設置:

$('#query_txt').select2 
    width: 'resolve' 
    minimumInputLength: 3 
    tags: false 
    showSearchBox: true 
    maximumSelectionSize: 1 
    closeOnSelect: true 
    multiple: false 
    ajax: 
     url: "/api/searches" 
     quietMillis: 100 
     dataType: 'json' 
     data: (term, page) -> {q: term} 
     results: (data, page) -> 
     results: data 

如果我在輸入鍵入單詞ingeniero agrónomo選擇2顯示了兩個結果,你可以在下圖中看到:

enter image description here

我如果存在2或更多結果等於json,則限制爲1select2建議

如何將限制爲1的select2建議如果存在2個或更多相等的結果?

回答

1

你需要做的是更新的結果函數來處理從數據功能的輸出數組並刪除重複的文字,未經測試的代碼,但這樣的事情應該這樣做:

$('#query_txt').select2 
    width: 'resolve' 
    minimumInputLength: 3 
    tags: false 
    showSearchBox: true 
    maximumSelectionSize: 1 
    closeOnSelect: true 
    multiple: false 
    ajax: 
     url: "/api/searches" 
     quietMillis: 100 
     dataType: 'json' 
     data: (term, page) -> {q: term} 
     results: (data, page) -> 
     indexes = [] 
     uniques = [] 
     i = 0 
     while i < data.length 
      if indexes[data[i].text] is `undefined` 
      indexes[data[i].text] = "defined" 
      uniques.push 
       id: data[i].text 
       text: data[i].text 
      i++ 
     results: uniques 
+0

我有編輯你的答案到coffeescript並修正語法錯誤。對不起,但這個解決方案不起作用,我沒有得到這個解決方案的建議。 – hyperrjas 2013-03-15 13:14:55

+0

是的,也許這次,select2可能需要在輸出對象中有一個id和文本。 – pedromarce 2013-03-15 13:20:48

+0

謝謝,但這種方法不工作......我沒有得到的建議:(。 – hyperrjas 2013-03-15 13:24:40

相關問題