任何 jquery 1.3 兼容插件,使用用户文本输入过滤下拉列表,并根据匹配的输入字符串数进行分组

Posted

技术标签:

【中文标题】任何 jquery 1.3 兼容插件,使用用户文本输入过滤下拉列表,并根据匹配的输入字符串数进行分组【英文标题】:Any jquery 1.3 compatible plugin to filter dropdown using user text input plus grouping based on number of input strings matched 【发布时间】:2011-10-14 21:14:57 【问题描述】:

只是想知道是否已经有插件,否则我将自己编写代码。以下是我的确切要求。

假设我有一个这样的下拉列表 -

<select id="values" name="country">
  <option value="1">Hello world</option>
  <option value="2">Hello there</option>
  <option value="3">Hello again</option>

  <option value="4">Andorra</option>
  <option value="5">Argentina</option>
  <option value="6">Armenia</option>
  <option value="7">Aruba</option>
  <option value="8">Australia</option>
  <option value="9">Austria</option>
  ...
</select>

并且有一个输入字段供用户过滤下拉内容。所以一开始是这样的——

用例(要求)

单个词项的明显情况-> 用户输入“你好”

结果应该只有包含“Hello”的选项

<select id="values" name="country">
      <option value="1">Hello world</option>
      <option value="2">Hello there</option>
      <option value="3">Hello again</option>
</select>

当输入多个单词时 -> 例如"Hello again", OR 逻辑应该应用在选项和包含任何单词的选项应该保留。

<select id="values" name="country">
  <option value="3">Hello again</option>
  <option value="2">Hello there</option>
  <option value="1">Hello world</option>      
</select>

我正在寻找的进一步增强是根据匹配的单词数对结果进行分组,所有单词匹配在顶部,然后是较小的单词匹配直到最后,像这样 -

我知道这是一个非常具体的要求,但还是试了一下......

我检查了这个问题Jquery: Filter dropdown list as you type 和那里给出的一些插件演示,但没有找到我正在寻找的东西。第一部分JQuery UI MultiSelect 有我正在寻找的 OR 搜索逻辑,但没有分组。但这需要 jquery 1.5 和 the older version 与 jquery 1.3 一起使用没有输入字段。

【问题讨论】:

jQuery 1.3 在一年半前被取代(网络时代相当长的一段时间)。从那时起,很多错误已得到修复,并添加了相当多的新功能。我会花一些时间进行升级,而不是花时间为日益过时的版本寻找插件。 FWIW。显然,如果你现在真的不能升级,你真的不能,但是...... 【参考方案1】:

我的诚实意见是,最好的方法是为这个问题编写自己的自定义代码。 jQuery(顺便说一下使用 1.6)非常强大,可以解决您的问题,但不太可能找到完全满足您需求的特定插件。

也许你应该使用一个已经存在的插件,例如:

http://docs.jquery.com/Plugins/autocomplete

然后重新配置它以按照您想要的方式显示结果。然后将您的代码发布回社区并帮助添加到丰富的可用插件集合中。

只是一个想法。

【讨论】:

感谢您的诚实意见。我现在正在尝试编写一个插件。排序逻辑有点卡住了......究竟该怎么做......请检查我的问题***.com/questions/6857969/…

以上是关于任何 jquery 1.3 兼容插件,使用用户文本输入过滤下拉列表,并根据匹配的输入字符串数进行分组的主要内容,如果未能解决你的问题,请参考以下文章

用户在文本框中按下回车的 JQuery 事件?

jquery插件-fullpage.js

一些常用的jQuery插件

jquery之全屏滚动插件fullPage.js

jQuery

如何使用 jquery.dirtyforms?