Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 动态添加div,但存在输入类型无线电问题_Jquery_Html_Css_Radio - Fatal编程技术网

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++;
  });