你如何克隆一个jQuery UI复选框?

时间:2014-12-08 01:46:13

标签: jquery jquery-ui checkbox

我正在动态构建表单。我将输入的id标签重命名为特定值(所以我稍后可以引用它们)。当我包含一个复选框输入时,我最终得到一个收音机(或至少是奇怪的行为)与单个复选框。 Fiddle来说明问题...

HTML

<div id='first'>     
    <input type="checkbox" id="some-0"><label for="some-0">My Label</label></input>
</div>
<div id='second'>
 <input type="checkbox" id="some-1"><label for="some-1">My Label</label></input>   
</div>

的JavaScript

$('[id^=some]').button();
var temp = $('#second').clone(true);
temp.find('input').each(function (){
    var NAME = $(this).attr('id').split('-');
    var LINEcount = 2;
    $(this).attr('id',NAME[0]+'-'+LINEcount);
});
$('body').append(temp);

3 个答案:

答案 0 :(得分:1)

好吧,我相信您的问题不在于clone功能,而在于button功能。您还需要更改for中的<label>属性。尝试使用以下代码:

$('[id^=some]').button();
var temp = $('#second').clone(true);
temp.find('input').each(function (){
    var NAME = $(this).attr('id').split('-');
    var LINEcount = 2;
    $(this).attr('id',NAME[0]+'-'+LINEcount);
    $(this).next().attr('for',NAME[0]+'-'+LINEcount);
});
$('body').append(temp);

这是我的Fiddle ..

答案 1 :(得分:0)

我希望有人帮助你DEMO 我在点击事件中做到了..你可以用你想要的事件来改变它我将你的主要div添加到第一个和第二个更改为top-div-1和top-div-2

$(document).ready(function(){
    $('.thisDiv > input').button();
    $('input[type="button"]').on('click',function(){
        var count = ($('.thisDiv').length) +1;
        $('body').append('<div class="thisDiv" id="top-div-'+count+'"><input type="checkbox" id="some-'+count+'"><label for="some-'+count+'">My Label '+count+'</label></input</div>');
            $('.thisDiv > input').button();
    });
});

如果你在寻找什么?对于我在这里的任何帮助

答案 2 :(得分:-1)

var clone=$("#original_object").clone( true );

clone.appendTo("#new_parent");