无法克隆 select2 字段

Posted

技术标签:

【中文标题】无法克隆 select2 字段【英文标题】:Can't clone select2 fields 【发布时间】:2013-11-05 12:25:24 【问题描述】:

我正在尝试向包含“select2”(plugin) 字段的表中添加一行。虽然我得到了新行,但新的 select2 选择字段不起作用。知道为什么吗?

p.s.:html 是希腊语,这就是为什么我没有粘贴它,以避免混淆。我的猜测是这是一个 jquery 问题,但无论如何,如果您需要 html,请告诉我。

var rowtemplate = $("tr#1").html();
function createRow(num)
    var ns = "s" + num + "id_";
    var numAdd = num + 1;
    var autoGen = numAdd + 1;
    var psomi = rowtemplate.replace("_1", "_"+num);
    $("div.select2-container").remove(); // Remove all select2 elements
    return '<tr id="'+ num +'" class="troption">' + psomi + '</tr>';



$('a[data-role="addrow"]').click(function(event) 
    event.preventDefault();
    var lastTr =  $('tr.troption:last'),
        lastTrid = parseInt(lastTr.attr("id")),
        newid = lastTrid + 1;
        newRowHtml = createRow(newid);
        $('tr#'+lastTrid).after(newRowHtml);
        // Recreate the select2 divs
        $(".select2").select2(
                allowClear: true
            );
);

Firebug 错误 = 未捕获的异常:未为 Select2 s2id_autogen3 定义查询函数

【问题讨论】:

Clonned Select2 is not responding的可能重复 【参考方案1】:

如果您从页面源代码复制代码并粘贴您自己的页面,则会出现 s2id_autogen3 错误。

示例我从右键单击源代码复制代码。

错误复制代码

<div class="form-group">
                    <label class="control-label col-md-3">Large</label>
                    <div class="col-md-4">
                        <div class="select2-container form-control input-large select2me" id="islemTipi">
                            <a href="javascript:void(0)" class="select2-choice select2-default" tabindex="-1">
                                <span class="select2-chosen" id="select2-chosen-4">Select...</span>
                                <abbr class="select2-search-choice-close"></abbr>
                                <span class="select2-arrow" role="presentation"><b role="presentation"></b></span>
                            </a><label for="s2id_autogen4" class="select2-offscreen"></label><input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-4" id="s2id_autogen4">
                        </div><select class="form-control input-large select2me select2-offscreen" data-placeholder="Select..." tabindex="-1" title="">
                            <option value=""></option>
                            <option value="AL">Alabama</option>
                            <option value="WY">Wyoming</option>
                        </select>
                        <span class="help-block"> </span>
                    </div>
                </div>

这是真的 并且未触发 select2 s2id_autogen3 未定义 vs..

              <div class="form-group">
                    <label class="control-label col-md-3">Large</label>
                    <div class="col-md-4">
                        <select class="form-control input-large select2me" data-placeholder="Select...">
                            <option value=""></option>
                            <option value="AL">Alabama</option>
                            <option value="WY">Wyoming</option>
                        </select>
                        <span class="help-block">
                            .input-large
                        </span>
                    </div>
                </div>

我就是这样解决的。

【讨论】:

以上是关于无法克隆 select2 字段的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Select2 下拉输入搜索字段中输入 (http://kevin-brown.com/select2/)

单击时克隆的 select2 没有响应

克隆 select2 选项

Laravel 背包 select2_multiple 无法正确显示

克隆的 Select2 在 Asp.Net 中不起作用

Select2 字段 .value 属性不会在 .onchange 函数内更改