如何解决Select2多种语言过滤器
我正在初始化select2输入。我想同时过滤希腊文和英文结果。但是我想隐藏英文单词。关键是当用户输入英语或希腊语(使用搜索)时,能够返回相同的结果。这可能吗?
<select class="custom-select custom-select-sm" id="streets">
{% for s in streets %}
<option>{{s.street_desc_greek}} {{s.street_desc_english}}</option>
{% endfor %}
</select>
$(()=>{
$("#streets").select2({
id : 'streets',width: '100%',})
})
解决方法
您可以使用data-english
将英语单词置于选项中,然后使用select2的matcher
到customize how results are matched。示例:
$("#streets").select2({
id : 'streets',matcher: matchCustom
})
function matchCustom(params,data) {
if ($.trim(params.term) === '') return data;
if (data.text.indexOf(params.term) > -1 || data.element.dataset.english.indexOf(params.term) > -1) return data;
return null;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<select id="streets">
<option value="1" data-english="English1">Greek1</option>
<option value="2" data-english="English2">Greek2</option>
<option value="3" data-english="English3">Greek3</option>
<option value="4" data-english="English4">Greek4</option>
</select>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。