更改所选jquery插件中的搜索行为
我正在使用所选的jQuery插件,希望搜索行为有所改变(单选)。搜索只会得到搜索字符串中单词开头匹配的命中结果。我想把它扩展到斜杠和括号后的hit单词 例如: 搜索字符串:“second”与项目“first/second”或“first(second)”不匹配 我怀疑通过简单地向构造函数添加选项就可以改变这一点,但我愿意更改/hardcode源代码脚本更改所选jquery插件中的搜索行为,jquery,jquery-plugins,Jquery,Jquery Plugins,我正在使用所选的jQuery插件,希望搜索行为有所改变(单选)。搜索只会得到搜索字符串中单词开头匹配的命中结果。我想把它扩展到斜杠和括号后的hit单词 例如: 搜索字符串:“second”与项目“first/second”或“first(second)”不匹配 我怀疑通过简单地向构造函数添加选项就可以改变这一点,但我愿意更改/hardcode源代码脚本 选择:正如最近的一些回答中提到的,该插件现在实现了一个更改搜索行为的选项: search_contains: true 该插件不提供更改搜
选择:正如最近的一些回答中提到的,该插件现在实现了一个更改搜索行为的选项:
search_contains: true
该插件不提供更改搜索方法行为的选项 如果您愿意更改插件源代码本身,这里有一个方法 在插件中进行搜索的方法是
选择的.prototype.winnow\u results
。它使用与搜索词“以”开头的文本匹配的正则表达式:
// "^": means "starts with"
// "searchText" is the text in the search input (it is just cleaned up don't be scared)
regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
将其更改为:
regex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
可以使用
search\u contains
默认情况下这是false
将其设置为true
,选中该选项也会在其中查找匹配项,而不仅仅是开头:
$('#my_dropdown').chosen({ search_contains: true });
在选定的1.0中,我在第301和302行执行了此操作
escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
regexAnchor = "";
在Selected 1.0中,只需添加选项{search_contains:true}
$('.selector').chosen({search_contains: true});
玩得开心。有一个选项
search\u包含可用于在选项中搜索子字符串的
,可以用作:
$(".chosen-select").chosen({
search_contains: true
});
非常好!这也会导致searchTerm=“cond”的点击率,我实际上并没有在寻找它,但在这种情况下它是完全可以接受的。现在它是最新的,不需要修改插件。似乎今天选择的版本在
单词的开头搜索:因此,如果我在输入中键入t,并且绑定到所选对象的选择有一个类似“某些文本”的选项,它将在下拉列表中列出…是否有方法禁止此行为,并仅从选项文本的开头进行真正的搜索?是否出于性能原因而默认禁用此功能?如果是,性能变化有多大。