jquery-select2 - 如何正确删除 Select2 下拉菜单
问题描述
我正在尝试使用 jQuery Select2 输入标签。
通过向 Select2 添加选项,它可以很好地工作{tags: true}
,允许用户添加自定义标签。但我不想显示下拉列表,所以我添加了 CSS:
.select2-dropdown--below {
display: none;
}
事实证明,当我输入新标签并按 Enter 键时,它仍然有不需要的行为:
- 如果我输入一个新的关键字,它插入成功
- 如果我输入的关键字是来自预选选项之一的子字符串——比如“草莓”已经包含的“raw”或“berry”——它不会插入
我认为这是由 Select2 行为引起的,该行为会自动突出显示/选择与输入字符串匹配的选项
我怎样才能解决这个问题?或者有什么方法可以正确删除 Select2 下拉菜单?
这是完整的片段:
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<style>
.select2-dropdown--below {
display: none;
}
</style>
</head>
<body>
<select multiple style="width: 100%">
<option selected>Banana</option>
<option selected>Orange</option>
<option selected>Strawberry</option>
</select>
<script>
$(document).ready(function () {
$('select').select2({
tags: true,
width: 'resolve'
});
});
</script>
</body>
</html>
解决方案
找到了解决方案,我在选项中添加了一个匹配器,它始终return null
不会匹配并突出显示任何预选的选项
$('select').select2({
tags: true,
width: 'resolve',
matcher: function () { return null; }
});
推荐阅读
- python - 找不到保存在另一个子目录中的模块
- python - 如何将新列表分配给作为参数传递的列表?
- javascript - 条形图仪表 Highcharts
- python - Tensorflow Keras LSTM 未训练 - 受 number_of_epochs、优化器 adam 的影响
- node.js - 在 Nginx 和 CloudFlare 上运行 Node.js 的两个网站的重定向问题
- batch-file - 如何根据用户输入的文件扩展名将某些文件移动到另一个文件夹并为每个移动的文件在原始目录中创建快捷方式?
- arrays - 谷歌表格数组范围
- ios - Xcode 中的库文件夹在哪里?
- java - JAXB,Moxy Unmarshal JSON HTTP 参数与对象
- c - Scanf() 在特定情况下表现奇怪