2

我在 /api/searches 文件上有这个 json:

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

我正在使用 select2 来显示结果。

这是我的 select2 设置:

$('#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ónomoselect2 建议两个结果,您可以在下一张图片中看到:

在此处输入图像描述

我想要,如果2json 中存在或更多结果相等,则限制为1select2建议

如果存在 2 个或更多相等的结果,我如何将 select2 建议限制为 1 个?

4

1 回答 1

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
于 2013-03-15T13:02:00.680 回答