“未为 Select2 未定义错误定义查询函数”

IT技术 javascript runtime-error jquery-select2
2021-02-28 11:49:04

尝试使用 Select2 并在多个项目输入/文本字段上收到此错误:

"query function not defined for Select2 undefined error"
6个回答

涵盖在此 google 群组线程中

问题是因为 select2 添加了额外的 div。Select2 添加了带有类“select2-container form-select”的新 div 来包装创建的选择。所以下次我加载函数时,错误被抛出,因为 select2 被附加到 div 元素。我改变了我的选择器...

使用特定标签名称“select”为 select2 css 标识符添加前缀:

$('select.form-select').select2();
也必须在里面 $(document).ready(function() { $('select.form-select').select2()})
2021-04-16 11:49:04
如果选择控件已被.select2({})方法初始化,通常会发生此问题更好的解决方案是首先调用 destroy 方法。前任:$("#mySelectControl").select2("destroy").select2({});
2021-04-17 11:49:04
以某种方式为我修复了它,在我的情况下,我克隆了一行表单输入,其中包括 select2-ified 选择菜单,并且在第一个克隆之后发生了各种奇怪的事情。
2021-04-19 11:49:04
如何在 Angular UI Select2 指令中解决同样的问题?
2021-04-28 11:49:04
今天刚遇到同样的问题 - 尽管之前相同的代码没有问题(也许是 select2 的更新?)。无论如何,这也为我解决了问题并且再次正常工作。很好的答案!
2021-05-01 11:49:04

这个错误信息太笼统了。它的其他可能来源之一是您试图select2()在已经“select2ed”的输入上调用方法。

如果您初始化空输入,请执行以下操作:

$(".yourelement").select2({
 data: {
  id: "",
  text: ""
 }
});

阅读下面的第一条评论,它解释了为什么以及何时应该使用我的答案中的代码。

这应该是这个问题的公认答案。不知道为什么select2()不简单地接受空参数
2021-04-27 11:49:04
当我将一个 select2 框从一个实际的 select 元素迁移到一个我稍后填充的 input type=hidden 元素时,我遇到了这个问题。在单步执行select2代码时,抛出这个错误是因为没有传入query、ajax、data或tags值。
2021-05-05 11:49:04

我也遇到了这个问题,请确保您没有将 select2 初始化两次。

对我来说也是一样,但错误对我来说不是问题。s2 无论如何都可以工作
2021-04-23 11:49:04
这个怎么做?
2021-04-28 11:49:04

对我来说,这个问题归结为设置正确的 data-ui-select2 属性:

<input type="text" data-ui-select2="select2Options.projectManagers" placeholder="Project Manager" ng-model="selectedProjectManager">


$scope.projectManagers = { 
  data: []  //Must have data property 
}

$scope.selectedProjectManager = {};

如果我关闭该data属性,$scope.projectManagers则会收到此错误。