jQuery搜索大选择框

时间:2012-02-08 16:50:21

标签: jquery

我需要一个jQuery插件来搜索一个包含10到1000个选项的大型选择框。 http://harvesthq.github.com/chosen/一开始似乎是可行的,但我需要改变其功能或替代插件。

我有一系列选择框,范围从10到1000个选项。当用户输入与他们正在寻找的选项匹配的字符串时,我需要一种方法来提供选择框的过滤器。我发现http://harvesthq.github.com/chosen/看起来很棒,功能强大,并且易于使用我当前的html实现。

我唯一的问题是搜索只匹配单词的开头,而不是单词的中间。请参阅选定网页上的第一个示例,“Alba”与“Albania”匹配,但“bania”与“Albania”不匹配。我需要一个解决方案,其中“bania”将匹配“阿尔巴尼亚”,因为在我的选择列表中,大多数选项在最后由数字区分。有没有人有改变选择具有此功能的经验,或者是否有一个不同的jQuery插件提供此功能,同时还看起来很好,功能强大且易于实现?我搜索并找到了其他插件,但它们要么没有好的风格,要么看起来更难实现。

1 个答案:

答案 0 :(得分:1)

哇,这是我第一次听说Chosen,它非常棒!

基本上我找到了这一行(selected.jquery.js第732行):

regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');

刚刚删除了'^',如下所示:

regex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');

这样做,我发现在演示中,“bania”现在会找到阿尔巴尼亚。

当然,这是15分钟的时间......你可能想要考虑一些其他事情:

  • 这应该是可选的吗? (也许给用户一个复选框)
  • 也许winnow_results应该完全重写以适应,例如通过以上更改以

    开头的行

    } else if(option.html.indexOf(“”)> = 0

    现在是多余的

'希望这会有所帮助