javascript - 多种语言的 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
将您的英文单词放在选项中,然后使用matcher
select2 来自定义结果的匹配方式。例子:
$("#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>
推荐阅读
- javascript - 材料表添加多选查找
- python - 单元测试抽象基类和子类
- php - 无法在 Windows Server 2016 中的 WordPress 中创建目录 wp-content
- swagger - Autorest 错误 - swagger.json' 不是有效的 OpenAPI 2.0 定义(预期为 'swagger: 2.0')
- javascript - 无法通过在我的环境中使用变量来获取 DOMelement 但在控制台中我可以
- javascript - 用 javascript 实现 CSS。这里有什么问题?
- mysql - 从多个表中选择相同的数据并忽略其他列
- python - 我有问题网络抓取图像;当我尝试我的代码时,它只是说 []
- javascript - 由 import 语句创建的命名空间列表
- .net - Linux 上的 ildasm 通过 nuget 安装:找不到 ildasm 可执行文件