【问题标题】:jquery select2 append selected item?jquery select2追加选定的项目?
【发布时间】:2015-07-22 06:31:04
【问题描述】:

我正在尝试使用 ajax 从多选 jquery select2 中选择一个项目

HTML

<select name="schools" id="schools" multiple='multiple'>
  <option value="-1000">select all</option>
  <option value="35102907">org1</option>
</select>

JS

$("#schools").select2({
  ajax: {
    url: "ajax_controller.php",
    dataType: 'json',
    data: function (params) {
        return {
            a: 'getSchoolList',
            c: 'model_milk_contract',
            p: [params.term],
            cs: csrf
        }
    },
    processResults: function (response) {
      return {
         results: $.map(response, function(obj) {
            return { id: obj.org_code, text: obj.org_name };
         })
      }
    }
  }

});

but when one item selected, jquery says in console:

未捕获的类型错误:无法在“节点”上执行“appendChild”:参数 1 不是“节点”类型。

然后我试图找到问题,一段时间后我在 jquery 核心的下一行发现,ret[i] 必须是 node object,但它得到的是 array of node objects,如果我将 ret[i][0] 传递给这个功能,它的工作原理!

fragment.appendChild( ret[i] );

有什么问题?!

【问题讨论】:

  • 您提供的代码与下拉列表不附加它们有关。您能分享失败的代码吗?
  • 当我从列表中选择一个项目时,在 jquery 的核心中完全失败的代码 fragment.appendChild( ret[i] );
  • 请同时包含您的 HTML。
  • 其实ret[i]在这一行中,当我选择一个项目时是[li.select2-selection__choice],而必须是一个对象,而不是对象数组
  • 另外,请附上您的 AJAX 响应示例。

标签: javascript jquery jquery-select2


【解决方案1】:

最后我发现了问题: 我的 jquery 太旧了,它的版本是 1.7.1,而 select2 版本 4 需要最小 jquery 1.8。 谢谢...

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 2013-05-14
    • 2018-02-21
    • 2021-09-03
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    相关资源
    最近更新 更多