使用select2插件可以为1个值使用多个搜索关键字
示例:
<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>
在搜索文件中,如果您使用任何语言(从值或数据属性)进行搜索,它将显示结果
预期结果:
答案 0 :(得分: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;
}
});
});