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

Posted

技术标签:

【中文标题】如果存在 2 个或更多相等的结果,则将 select2 建议限制为 1【英文标题】:limit to 1 the select2 suggestions if exist 2 or more equal results 【发布时间】:2013-03-04 04:42:22 【问题描述】:

我在 /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ónomo select2 建议这两个结果,您可以在下一张图片中看到:

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

如果存在 2 个或更多相同的结果,我如何将 select2 建议限制为 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

【讨论】:

我已经编辑了您对 coffeescript 的回答并修复了语法错误。抱歉,此解决方案不起作用,我没有收到有关此解决方案的建议。 是的,也许这一次,select2 可能需要在输出对象中有一个 id 和 text。 谢谢,但这种方法不起作用...我没有得到建议:(。 这个方案我已经测试过了,你需要重新翻译成coffescript,抱歉没用过,不过应该没问题。我在 jsfiddle 中的测试,jsfiddle.net/BgUzc 谢谢,现在工作正常 :)。我已将您的问题编辑为咖啡脚本。谢谢!

以上是关于如果存在 2 个或更多相等的结果,则将 select2 建议限制为 1的主要内容,如果未能解决你的问题,请参考以下文章

将 2 个或更多异步 HTTP 调用的结果设置为命名变量

IL指令集

IL指令详细表

如何从 2 个或更多矩阵的所有可能组合中创建矩阵?

如果一千或更多,则将数字格式化为 2.5K,否则为 900

当 MDX 查询包含 2 个或更多级别的相同维度时,速度较慢