是否可以修改https://github.com/davidstutz/bootstrap-multiselect搜索功能以使用非连续多个单词进行搜索?
例如,在下文中,他们希望通过使用“one two”搜索显示所有具有“one”和“two”的选项
1)一,二
2)二和一
3)蓝色
4)绿色和蓝色
结果应显示1)和2)
答案 0 :(得分:1)
建议使用;
之类的特殊字符
在1070行:
var queryValues = this.query.split(";");
for(var i = 0;i<queryValues.length;i++){
queryValues[i].trim();
if (this.options.enableFullValueFiltering && this.options.filterBehavior !== 'both') {
var valueToMatch = filterCandidate.trim().substring(0, queryValues[i].length);
if (queryValues[i].indexOf(valueToMatch) > -1) {
showElement = true;
break;
}
}
else if (filterCandidate.indexOf(queryValues[i]) > -1) {
showElement = true;
break;
}
}
答案 1 :(得分:1)
bootstrap-multiselect
已经有onFiltering
功能,您在bootstrap-multiselect
Github存储库中引用此line源代码。
this.options.onFiltering = $.proxy(this.options.onFiltering, this);
但是还没有发布,所以我尝试复制并粘贴我的小提琴并使用onFiltering
实现。
在onFiltering
中,请遵循此代码。
var search_query = $("#example-filterBehavior").next(".btn-group").find('.multiselect-search').val().split(' ');
var search_label = $('#example-filterBehavior').next('.btn-group').find('.multiselect-container > li:not(".multiselect-item.filter")');
search_label.each(function(idx, elem) {
$(elem).css('display', 'none');
$(search_query).each(function(q_idx, q_elem) {
if ($(elem).find('input').val().indexOf(q_elem) > -1) {
$(elem).css('display', 'list-item');
$(elem).removeClass('filter-hidden');
} else {
$(elem).css('display', 'none');
return false;
}
});
});
这里是fiddle
尝试输入one two
或Blue Green
。