我需要一个jQuery插件来搜索一个包含10到1000个选项的大型选择框。 http://harvesthq.github.com/chosen/一开始似乎是可行的,但我需要改变其功能或替代插件。
我有一系列选择框,范围从10到1000个选项。当用户输入与他们正在寻找的选项匹配的字符串时,我需要一种方法来提供选择框的过滤器。我发现http://harvesthq.github.com/chosen/看起来很棒,功能强大,并且易于使用我当前的html实现。
我唯一的问题是搜索只匹配单词的开头,而不是单词的中间。请参阅选定网页上的第一个示例,“Alba”与“Albania”匹配,但“bania”与“Albania”不匹配。我需要一个解决方案,其中“bania”将匹配“阿尔巴尼亚”,因为在我的选择列表中,大多数选项在最后由数字区分。有没有人有改变选择具有此功能的经验,或者是否有一个不同的jQuery插件提供此功能,同时还看起来很好,功能强大且易于实现?我搜索并找到了其他插件,但它们要么没有好的风格,要么看起来更难实现。
答案 0 :(得分:1)
基本上我找到了这一行(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
现在是多余的
'希望这会有所帮助