如何仅在javascript中更改克隆单选按钮的名称

时间:2017-12-18 12:18:13

标签: javascript

我正在尝试更改克隆单选按钮的名称(它们是动态创建的),以便可以从所有单选按钮中选择这些单选按钮。目前只能选择一个单选按钮。 请在下面找到HTML

<table class="ebTable" style="border-left:1px solid #e6e6e6;border-right:1px solid #e6e6e6;">
    <thead>
        <tr>
            <th>{{fieldName}}</th>
            <th>{{fieldType}}</th>
            <th>{{mandatory}}</th>
            <th>
                <button class="ebBtn" e-id="start" name="start">
                    <i class="ebIcon ebIcon_add"></i>
                    <span>Add</span>
                </button>
            </th>
        </tr>
    </thead>
    <tbody>
        <tr id="repeat">
            <td>
                <e-forminput type="text" e-id="fieldName" />
            </td>
            <td>
                <e-forminput type="select" value="{{selectType}}" items="IA5String" e-id="fieldType" />
            </td>
            <td>
                <e-forminput type="radio" e-id="mandatory" name="mandatory" options="true:{{yes}},false:{{no}}" />
            </td>
            <td>Delete Button</td>
        </tr>
    </tbody>
</table>

请在下面找到JavaScript代码

onViewReady: function() {
    var i = 0;

    this.view.findById("start").addEventHandler("click", function() {
        var original = document.getElementById('repeat');
        var clone = original.cloneNode(true); // for clone              
        clone.id = "repeat" + ++i; // there can only be one element with an ID            
        var size = document.getElementsByName("mandatory").length;
        console.log(size);
        for (var j = 0; j < size; j++) {
            if (clone.childNodes[j].nodeName.toLowerCase() == 'input' && clone.childNodes[j].nodeType == 'radio') {
                clone.childNodes[j].name = "mandatory" + i;
            }
        }
        original.parentNode.appendChild(clone);

    }.bind(this));
}

0 个答案:

没有答案