0

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

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

<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 and some plugin demos given there,但没有找到我正在寻找的东西。第一部分JQuery UI MultiSelect具有我正在寻找的 OR 搜索逻辑,但没有分组。但这需要 jquery 1.5 并且与 jquery 1.3 一起使用的旧版本没有输入字段。

4

1 回答 1

1

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

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

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

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

只是一个想法。

于 2011-07-28T08:29:10.223 回答