2017-09-26 182 views
0

与SELECT2插件是可以使用多个搜索关键字1个值SELECT2多个搜索关键字

实施例:

<select> 
    <option data-en="Englisch" data-ar="الإنجليزية" data-cn="英语" data-de="Englisch" value="AL">English</option> 
    <option data-en="arabic" data-ar="عربى" data-cn="阿拉伯" data-de="Arabisch" value="AL">arabic</option> 
    <option data-en="Chinese" data-ar="صينى" data-cn="中文" data-de="Chinesisch" value="AL">Chinese</option> 
</select> 

在搜索如果以任何语言搜索(从值或数据属性日提交的),它会显示结果

预期结果:

Check This Screenshot

回答

0

您应该能够完全覆盖匹配器功能,如https://select2.org/searching中所示。因此,您不仅可以在为用户显示的文本中搜索输入的文本,还可以在选项的元数据中搜索输入的文本。

下面是一个不完整的例子:https://jsfiddle.net/gLhckn7z/。 必须改进比较功能。它应该检查所有的“数据”属性,应该比较小写版本的数据等。

$(document).ready(function() { 
$('select').select2({ 
    matcher: function(params, data) { 
    if ($.trim(params.term) === '') return data; 
    if (typeof data.text === 'undefined') return null; 

    // `params.term` should be the term that is used for searching 
    // `data.text` is the text that is displayed for the data object 
    if (data.text.indexOf(params.term) > -1 
     || $(data.element).data("de").indexOf(params.term) > -1) { 
     var modifiedData = $.extend({}, data, true); 
     modifiedData.text += ' (matched)'; 

     return modifiedData; 
    } 

    // Return `null` if the term should not be displayed 
    return null; 
    } 
}); 
}); 
+0

这对德的工作。 – XIAN

+0

这是不完整的例子。只需在文本和“德”版本中进行搜索。根据您的需求进行相应更改 – Gedrox