1

这有一个问题,以前以各种形式问过,但我找不到满意的答案,所以我想问这个问题。

我有一个选定的选择框,如下所示:

<select name="publicationID[]" id="publicationID[]" class="chzn-select-create-option" data-placeholder="Select Publication or type new..." style="width:550px;">

这是一个稍微修改过的常规选择版本,允许您将一个元素添加到下拉列表中(这与问题无关)。

我有一个按钮,上面写着“添加另一个出版物”,它会触发 Ajax 查询以创建上述元素的副本,publicationID[]。

由于选择元素的 ID 冲突,选择的问题不适用于克隆。如您所见,我正在使用 ID 名称的数组版本,以便在发布数据后可以遍历数组,但如果所选样式不能应用于副本,这将是不好的。

我最初的 selected() 调用是在返回元素的副本后在 ajax 中进行的,除了在这种重复 ID 的实例中之外,它通常可以正常工作:

(阿贾克斯)

document.getElementById(div).innerHTML=oXmlHttp.responseText
doChosen();

(doChosen 函数)

function doChosen() {
    $(".chzn-select").chosen();
    $(".chzn-select-deselect").chosen({allow_single_deselect:true});
    $(".chzn-select-create-option").chosen({
            create_option: function(term){
            var chosen = this;
            chosen.append_option({
            value: term,
            text: "New: " + term
    });
    },
    persistent_create_option: true
    });
}

我在这里看到了一些解决方案,它们谈论在表单中删除和重新应用所选样式,但我所看到的没有以足够简单的方式让我遵循。

4

0 回答 0