Jquery 动态添加div,但存在输入类型无线电问题
我使用的是Jquery 动态添加div,但存在输入类型无线电问题,jquery,html,css,radio,Jquery,Html,Css,Radio,我使用的是 $('.addMore')。在('click',function()上{ $('.addMoreDiv:last').clone().insertAfter('.addMoreDiv:last'); $('.addMoreDiv')。每个(函数(i,v){ $(this.find('input').attr('name','optradio'+i) }) }) 第一台 第二台 查找以下代码 <script src="https://ajax.googleapis.com/aj
$('.addMore')。在('click',function()上{
$('.addMoreDiv:last').clone().insertAfter('.addMoreDiv:last');
$('.addMoreDiv')。每个(函数(i,v){
$(this.find('input').attr('name','optradio'+i)
})
})
第一台
第二台
查找以下代码
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="addMoreDiv">
<label>
<input type="radio" name="optradio">Radio 1
</label>
<label>
<input type="radio" name="optradio">Radio 2
</label>
</div>
<a href="#" class="addMore">Add More</a>
试试这个:
var clone = '';
var count = 0;
$('.addMore').on('click', function() {
clone += '<div class="addMoreDiv">';
clone += '<label>';
clone += '<input type="radio" name="optradio'+count+'">Radio 1';
clone += '</label>';
clone += '<label>';
clone += '<input type="radio" name="optradio'+count+'">Radio 2';
clone += '</label>';
clone += '</div>';
$('.addMoreDiv').after(clone);
count++;
});
var clone='';
var计数=0;
$('.addMore')。在('click',function()上{
克隆+='';
克隆+='';
克隆+=‘无线电1’;
克隆+='';
克隆+='';
克隆+=‘无线电2’;
克隆+='';
克隆+='';
$('.addMoreDiv')。在(克隆)之后;
计数++;
});
仍然面临问题。请在下面发表评论。如@sailens所建议;我们需要更改单选组的
名称
,以便将其视为一组全新的单选按钮。我们可以通过以下方式实现:
var计数=0;
$('.addMore')。在('click',function()上{
var clonedDiv=$('.addMoreDiv:last').clone();
clonedDiv.find(“输入[type=radio]”)。每个(函数(){
$(this.attr(“名称”、“optradio_uu2;”+计数);
});
计数++;
clonedDiv.insertAfter('.addMoreDiv:last');
})
第一台
第二台
clone()
方法只需再添加一个元素副本。元素的属性保持完全相同。但是您没有更改代码中的name
属性。将克隆结果保存在var
中如何,编辑克隆的名称,然后重新插入?@sailens你能分享一个例子吗?如何改变variable@lucky我正在使用javascript bt作为克隆方法更改名称,在名称更改后已插入新元素,因此问题仍然存在..正如我在更改名称之前的问题中所述,添加了div,因此存在相同的问题。只需交换newdiv.insertAfter(lastdiv)代码>和下面的一行,然后它会在添加之前更改名称,就像我在答案中所做的那样。你做了同样的事情…检查你自己的结果问题仍然存在there@GauravAggarwal当我选择单选按钮时,每个按钮都是独立的。当您在第一行中选择radio1时,它不会取消选择OP想要的另一个单选按钮。如果您选择任何单选按钮,然后单击“添加更多”,则选择将消失。@GauravAggarwal我看到了,我没有看到它。。这是因为它会在每次单击时重命名名称attr。我将更新它,只更改克隆元素的名称attr是的,这将起作用。我共享的html只是一个示例。实际结构非常大,我无法为它编写所有字符串。
var clone = '';
var count = 0;
$('.addMore').on('click', function() {
clone += '<div class="addMoreDiv">';
clone += '<label>';
clone += '<input type="radio" name="optradio'+count+'">Radio 1';
clone += '</label>';
clone += '<label>';
clone += '<input type="radio" name="optradio'+count+'">Radio 2';
clone += '</label>';
clone += '</div>';
$('.addMoreDiv').after(clone);
count++;
});