目前我遇到了select / select2和jQuery $.clone
问题。
在一个html表单中,html选择框替换为select2,但select2 jQuery插件与此问题并不真正相关。
当我使用jQuery $.clone(true, true)
获取表单的副本来处理它时,我遇到了问题。
当我尝试以下操作时:
window.clone = $('#formSelector').clone(true,true);
克隆选定的值并丢失。见http://jsfiddle.net/straeger/ct31f34c/9/
即使我尝试通过调用删除select2,克隆的选择框也不会保留所选的值。
$('select').select2('destroy');
window.clone = $('#formSelector').clone(true,true);
请参阅:http://jsfiddle.net/straeger/dokenyss/1/
一个有很大缺点的小黑客(如果没有ID)是将选定的值复制到克隆:
$clone.find('select')
.each(function(index, value){
var $el = $(value);
$el.val($element.find('#'+$el.attr('id')).val());
});
请参阅:http://jsfiddle.net/straeger/ct31f34c/10/
我的问题是处理这样一个问题的正确方法是什么?
如果我没有ID,有没有人知道从原始jQuery元素中选择原始元素的对应方法?
或者保留当前所选选项的方法?通过属性,例如
<option value="c" selected>C Value</selected>