javascript - 可搜索的选择框库 Select2 无法工作
问题描述
我已经构建了一个网络应用程序,需要构建一个可搜索的选择框。
我使用过 Select2 库:https ://select2.org 。
但是在我的情况下,该库无法工作,没有可搜索的输入显示,Select2 执行的断点也没有被命中。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js"></script>
<select id='course_for_select' name="course_for_select" style="width:200px;" class="operator">
<option value="">--Select--</option>
{% for course in query_results %}
<option value=" {{ course.title }}">{{ course.title }}</option>
{% endfor %}
</select>
<script>
$(document).ready(function() {
//change selectboxes to selectize mode to be searchable
$("select").select2();
});
</script>
我收到错误:未捕获的类型错误:$(...).select2 不是函数
解决方案
如果你检查控制台,你会看到一个错误
$(...).select2 不是函数
这是因为尽管您将 jquery.min.js 和 select2.min.js 添加到页面中,但在此之后添加了另一个 jQuery 实例,它会覆盖前一个实例并丢失对 Select2 的引用。
要解决此问题,只需删除 jQuery 的第二个版本
$(document).ready(function() {
//change selectboxes to selectize mode to be searchable
$("select").select2();
});
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js"></script>
<select id='course_for_select' name="course_for_select" style="width:200px;" class="operator">
<option value="">--Select--</option>
<option value=" {{ course.title }}">{{ course.title }}</option>
</select>
推荐阅读
- django - Django 中的 JWT 配置
- java - 尝试将新的 dialogFragment 添加到片段上的现有 dialogfragmen 时,在空对象引用上的 FragmentManager.beginTransaction()
- javascript - KnockoutJS - 使用选择 2 的多选仅显示第一个选择
- java - 从 CalendarView 中获取日期
- azure-functions - 在激活“仅 HTTPS”的情况下调用 Azure 函数时出现 TLS 错误
- python - 最长公共前缀仅在字符串中给出 0 索引
- json - 推文 JSON 对象的最大大小
- java - 如何在代码本身中传递用户名和密码
- ruby-on-rails - 安装旧 Ruby Gems 的问题
- merge - 拆分和合并由 ANTLR 生成的 AST