这有一个问题,以前以各种形式问过,但我找不到满意的答案,所以我想问这个问题。
我有一个选定的选择框,如下所示:
<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
});
}
我在这里看到了一些解决方案,它们谈论在表单中删除和重新应用所选样式,但我所看到的没有以足够简单的方式让我遵循。