使用Select2时出现错误 - "Error: No select2/compat/query"

50

我正在尝试在我的网站上使用Select2库,以利用placecomplete遵循其相当简单的配置步骤),但是当我运行代码时,我遇到了一个奇怪的错误 -

Error: No select2/compat/query`

我已经尝试过搜索谷歌,但似乎真的没有其他人遇到过这个问题?

我的代码简而言之就是:

加载文件...

<link href="scripts/Select2/dist/css/select2.min.css" rel="stylesheet" />
<script src="scripts/Select2/dist/js/select2.min.js"></script>
<script src="scripts/jquery.placecomplete.js">//<![CDATA[//]]></script>

在我的页面中给一个输入框打标签...

<input id="example123" class="example123" type="text" />
在我的 document.ready 函数中,调用以下代码...
$('#example123').placecomplete({});

这就是出错的地方。

我哪里做错了?这个错误意味着什么?


  1. 你有包含jQuery吗?(听起来很傻,但有时确实会发生 :))
  2. 你确定文件名正确且已加载?(在网络选项卡和控制台中检查)
- Jeremy Thille
它真的支持 input 元素而不仅仅是 select 元素吗? - matanster
4个回答

90

你在这里遇到了两个问题,都可以很容易地解决。

  1. Select2 4.0.0不再支持精简版的query选项。这必须包含在完整的构建(select2.full.js)中,因为它通过向后兼容模块来处理。

  2. 您正在使用Placecomplete,并且它依赖于旧版Select2。看起来Select2 3.5.2+可以工作,但是从其使用的选项中可以看出,它不能与Select2 4.0.0一起使用。关于此,Placecomplete有一个开放的票据


3
你能告诉我如何获取完整版本吗?我已经通过npm安装了“select2”,并且有“select2.js”和“select2.full.js”文件,我通过“require('select2');”来获取它,那么如何获取完整版呢? - aks
6
require('select2/dist/js/select2.full'); 应该可以工作。 - pcothenet

20

对我而言,将<input />标签更改为<select>标签是有效的。


这是正确的答案。 - gdm

18

当网页上有两个具有相同ID的控件时,我曾经遇到过这种情况 - 我有一个隐藏的控件和一个选择器(隐藏的控件在前面)。


我在使用两个具有不同id的select2框时遇到了这个错误。 - wuliwong

0

如果您尝试在不支持select2的字段类型上初始化select2,例如隐藏字段或类似字段,则可能会发生这种情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接