Javascript &引用;没有为Select2未定义错误定义查询功能;
尝试使用Select2并在多项目输入/文本字段上出现此错误:Javascript &引用;没有为Select2未定义错误定义查询功能;,javascript,runtime-error,jquery-select2,Javascript,Runtime Error,Jquery Select2,尝试使用Select2并在多项目输入/文本字段上出现此错误: "query function not defined for Select2 undefined error" 问题在于select2添加了额外的div。Select2添加了新的div,类为“Select2容器表单选择”,以包装创建的选择。因此,下一次我加载函数时,当select2被附加到div元素时抛出了错误。我换了选择器 使用特定标记名“select”作为select2 css标识符的前缀: 这个问题归结为我是如何构建sel
"query function not defined for Select2 undefined error"
问题在于select2添加了额外的div。Select2添加了新的div,类为“Select2容器表单选择”,以包装创建的选择。因此,下一次我加载函数时,当select2被附加到div元素时抛出了错误。我换了选择器
使用特定标记名“select”作为select2 css标识符的前缀:
这个问题归结为我是如何构建select2选择框的。在我的一个javascript文件中
$(function(){
$(".select2").select2();
});
在另一个js文件中,覆盖
$(function(){
var employerStateSelector =
$("#registration_employer_state").select2("destroy");
employerStateSelector.select2({
placeholder: 'Select a State...'
});
});
将第二个替代移动到窗口加载事件中解决了该问题
$( window ).load(function() {
var employerStateSelector =
$("#registration_employer_state").select2("destroy");
employerStateSelector.select2({
placeholder: 'Select a State...'
});
});
$('#carstatus-select').val([1,2]);
这个问题在Rails应用程序中出现了对我来说,这个问题归结为设置正确的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 = {};
$scope.projectManagers={
数据:[//必须具有数据属性
}
$scope.selectedProjectManager={};
如果我在
$scope.projectManagers
上去掉数据
属性,我会得到这个错误。您的选择器似乎返回了一个未定义的元素(因此返回了未定义的错误
)
如果元素确实存在,则在
输入
元素上调用select2,而不向select2提供任何内容,select2应该从中获取数据。通常,调用.select2({data:[{id:“firstid”,text:“firsttext”}])
在使用ajax时也会遇到相同的错误
如果使用ajax使用select2呈现表单,则输入html类必须与未使用ajax呈现的类不同。但不太清楚为什么它会以这种方式工作。使用ajax和文本框时,我也遇到了相同的错误,然后我通过删除文本框的类select2并按id设置select2来解决此问题,如:
$(function(){
$("#input-select2").select2();
});
如果初始化空输入,请执行以下操作:
$(".yourelement").select2({
data: {
id: "",
text: ""
}
});
阅读下面的第一条注释,它解释了为什么以及何时应该在我的答案中使用代码。此错误消息过于笼统。它的另一个可能来源是您试图调用已“select2ed”的
select2()
方法输入。我也遇到了这个问题。请确保您没有两次初始化select2。我遇到了相同的错误。我一直在使用select2-3.5.2
这是我出错的代码
$('#carstatus-select').select2().val([1,2])
下面的代码修复了这个问题
$( window ).load(function() {
var employerStateSelector =
$("#registration_employer_state").select2("destroy");
employerStateSelector.select2({
placeholder: 'Select a State...'
});
});
$('#carstatus-select').val([1,2]);
我有一个复杂的Web应用程序,我不知道抛出这个错误的确切原因。它导致JavaScript在抛出时中止 在select2.js中,我更改了:
if (typeof(opts.query) !== "function") {
throw "query function not defined for Select2 " + opts.element.attr("id");
}
致:
现在,一切似乎都正常工作,但它仍然在记录错误,以防我想尝试找出我的代码中到底是什么导致了错误。但现在,这对我来说是一个足够好的修复
if (typeof(opts.query) !== "function") {
throw "query function not defined for Select2 " + opts.element.attr("id");
}
这是由于选项中不存在查询而引发的。在内部,维护了一个检查,该检查需要以下参数之一
- 阿贾克斯
- 标签
- 资料
- 质疑
try {
$("#input-select2").select2();
}
catch(err) {
}
不知何故,我修复了它,在我的例子中,我克隆了一行表单输入,其中包括select2的选择菜单,并且在第一次克隆后发生了各种奇怪的事情。还必须在
$(document.ready)中(function(){$('select.form select').select2())
如何在Angular UI Select2指令中解决相同的问题?今天刚刚遇到相同的问题-尽管相同的代码以前没有问题(可能是Select2的更新?)。无论如何,这也解决了我的问题,并且再次正常工作。回答得很好!如果select控件已经由.select2({})
方法初始化,则通常会出现此问题。更好的解决方案是先调用destroy方法。例如:$(“#mySelectControl”).select2(“destroy”).select2({});
当我将select2框从实际的select元素迁移到稍后填充的input type=hidden元素时,出现了这个问题。在单步执行select2代码时,由于没有传入查询、ajax、数据或标记值,所以抛出了这个错误。这应该是这个问题的公认答案。不确定为什么select2()