尝试使用Select2并在多个项目输入/文本字段上出现此错误:
"query function not defined for Select2 undefined error"
尝试使用Select2并在多个项目输入/文本字段上出现此错误:
"query function not defined for Select2 undefined error"
Answers:
问题是由于select2添加了额外的div。Select2添加了带有“ select2-container form-select”类的新div,以包装创建的选择。因此,下次我加载该函数时,由于将select2附加到div元素上而引发了错误。我改变了选择器...
带有特定标记名称“ select”的前缀select2 css标识符:
$('select.form-select').select2();
$(document).ready(function() { $('select.form-select').select2()})
.select2({})
方法初始化,通常会发生此问题。更好的解决方案是先调用destroy方法。例如:$("#mySelectControl").select2("destroy").select2({});
对我来说,这个问题归结为设置正确的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
则会收到此错误。
这个问题归结为我如何构建我的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...'
});
});
这个问题在Rails应用程序中蓬勃发展
当将ajax与文本框一起使用时,我也遇到了相同的错误,然后我通过删除文本框的class select2和通过id设置select2来解决该问题,例如:
$(function(){
$("#input-select2").select2();
});
使用ajax时也出现相同的错误。
如果您使用ajax通过select2呈现表单,则input_html类必须不同于未使用ajax呈现的类。不太清楚为什么会这样工作。
if (typeof(opts.query) !== "function") {
throw "query function not defined for Select2 " + opts.element.attr("id");
}
如果选项中不存在查询,则会引发此错误。内部维护检查,要求以下任一参数
因此,您只需要为select2提供这4个选项之一,它就可以按预期工作。
我遇到了同样的错误。我一直在使用select2-3.5.2
这是我的代码有错误
$('#carstatus-select').select2().val([1,2])
下面的代码解决了该问题。
$('#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") {
console.error("query function not defined for Select2 " + opts.element.attr("id"));
}
现在一切似乎都可以正常工作,但是如果我想尝试弄清楚代码中到底是什么引起了错误,它仍然会登录错误。但是就目前而言,这对我来说已经足够了。
用 :
try {
$("#input-select2").select2();
}
catch(err) {
}