更改jquery clone()上单选按钮的名称

更改jquery clone()上单选按钮的名称,jquery,forms,jquery-clone,Jquery,Forms,Jquery Clone,这是我的HTML:: <fieldset> <legend>Attributes</legend> <div class="attr_container"> <div class="attr_entry existent row"> <div class="half"> <label for="attribute[]">At

这是我的HTML::

<fieldset>
    <legend>Attributes</legend>

    <div class="attr_container">
        <div class="attr_entry existent row">
            <div class="half">
                <label for="attribute[]">Attribute</label>
                <input id="attribute" maxlength="50" required="required" name="attribute[]" type="text">                
                <p>
                    <a href="javascript:void(0)" class="add_attr"><i class="fa fa-plus-circle"></i> Add Another Attribute</a> 
                    <span class="remove">| 
                    <a href="javascript:void(0)" class="remove_attr"><i class="fa fa-minus-circle"></i> Remove</a></span>
                </p>
            </div>
            <div class="half">
                <label for="designator">Is this attribute a designator?</label>             <input checked="checked" name="designator[0]" type="radio" value="0" id="designator[0]"> No
                <input name="designator[0]" type="radio" value="1" id="designator[]"> Yes
            </div>
        </div>
    </div>

</fieldset>
因此,当我克隆它时,我想知道如何将name属性更改为
指示符[1]
。。所以再加上一个。我不知道如何做到这一点,而仍然克隆和插入后,最后附加的克隆

下面是我用来说明如何接受单选按钮数组的HTML:

因为我需要知道我可以在PHP for循环中执行的属性,并获取属于它的正确指示符


谢谢你的帮助

您可以通过评估存在多少
$('.attr_entry')
元素来获得新索引。然后,您可以组合和设置单选按钮的名称

修改您的
clone()
行,如下所示:

var newIndex = $('.attr_entry').length;
$('.attr_entry:first').clone(true).removeClass('existent').insertAfter('.attr_entry:last').find('input[type="radio"]').prop('name', 'designator['+newIndex+']');


也请注意,元素的<代码> ID/COD>属性应该是唯一的,所以您可能需要同时考虑更新(使用相同的代码> PROFER)方法。

不太熟悉JQuery中的克隆,可以使用<代码> HARTHER()/<代码>函数设置属性。< /P> 因此,您的代码如下所示:

var designatorIndex = 0;
$('.add_attr').click(function() {
    // clone and add

    var myVar = $( ".attr_entry:first" ).clone(true).removeClass('existent');

    $(myVar).attr('name', 'designator' + designatorIndex );
    $(myVar).id('designator' + designatorIndex);
    designatorIndex++;
    $(myVar).insertAfter( ".attr_entry:last" );
});

我知道有一个attr()方法。我只是不知道在克隆操作发生之前该怎么做,因为在克隆之后,它会删除第一个单选按钮选择,并将其置于该单选按钮上,因此无法选择每个单选按钮。它们是单选按钮,而不是复选框,因为我希望它们选择或,并将其设置为必填项。。他们不必通过复选框选择是或否。。每个条目都必须填写。对不起,我的错。一秒钟,我正在为您制定正确的解决方案。您的jQuery可以工作,但出于一些奇怪的原因,它会取消选中第一个单选按钮,然后当我再次复制它时,第二个保持选中状态,但之后的那些没有默认值。。就像我一开始那样。知道为什么吗?我把他们的身份证擦掉了。我只是在它们上面放了一些类,而不是让它们成为单选按钮,而是让它们成为选择框=)这些代码都不起作用。我甚至一次又一次地修改它,但都无法使它工作。
var designatorIndex = 0;
$('.add_attr').click(function() {
    // clone and add

    var myVar = $( ".attr_entry:first" ).clone(true).removeClass('existent');

    $(myVar).attr('name', 'designator' + designatorIndex );
    $(myVar).id('designator' + designatorIndex);
    designatorIndex++;
    $(myVar).insertAfter( ".attr_entry:last" );
});