.clone之后选择不工作
我正在克隆一个HTML块,然后将它附加到div。
var part = $('#parts_tpl').clone(); $('#parts_tpl').after(part);
HTML包含一个表单,由于某种原因,选择框不会更新新克隆的HTML中的值。 如果我尝试更新原始选择框值,它会起作用。 我只是不使用新克隆的表单。
我确保新创建的选择框具有唯一的ID,名称等。这就是我这样做的方式:
// increment ids and names for select tags $('#' + content.attr('id')).find('select').each(function() { var id = $(this).attr('id') + partID; var name = $(this).attr('name') + partID; if ($(this).attr('id')) { $(this).attr('id', id); } if ($(this).attr('name')) { $(this).attr('name', name); } });
这就是我的HTML看起来像:
有谁知道最近发生了什么?
我尝试过的事情:
- 克隆不是克隆选择值
- https://github.com/spencertipping/jquery.fix.select-clone/blob/master/jquery.fix.select-clone.js
事实certificate好了。 我使用的是一个名为Uniform的插件。 制服不能很好地克隆选择。 这是我必须要解决的问题。
// fix uniform to update properly on cloned elements $('select').change(function() { $.uniform.update('#' + $(this).attr('id')); });
参照(一个或多个):
- 使用jQuery Uniform.js更改选择值
- jquery克隆一块元素。 选择要素的元素
我也有统一和克隆的问题,我的是一个复选框,克隆后表现得很奇怪,而我所做的就是使用统一的“恢复”,它基本上从所有元素中删除了均匀,然后克隆了我所拥有的克隆,并重新应用制服。 我想我可以在单个克隆源元素上使用还原,如果我想要而不是从全部删除(没有检查)。
所以最终看起来像这样:
$.uniform.restore($( "select, input:checkbox, input:radio, input:file")); // remove uniform effects var clonedItem = $("#originalItem").clone(); // clone and add $("body").append(clonedItem); $( "select, input:checkbox, input:radio, input:file").uniform(); // restore uniform
希望这有助于某人。