Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;没有为Select2未定义错误定义查询功能;_Javascript_Runtime Error_Jquery Select2 - Fatal编程技术网

Javascript &引用;没有为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

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

"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");
}
这是由于选项中不存在查询而引发的。在内部,维护了一个检查,该检查需要以下参数之一

  • 阿贾克斯
  • 标签
  • 资料
  • 质疑
因此,您只需提供这4个选项中的一个来选择2,它就会按预期工作。

使用:

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()