2017-01-06 66 views
0

我在每个游戏夹具中创建动态表单,以便他们可以邀请玩家。 当创建团队工作表时,我将名称和创建一个列表。jquery复制动态复选框不起作用

/* Get team players information */ 
        if (data.team_members){ 
         $.each(data.members,function(index,item){ 
          if (data.r_id <= 2){ 
           members += '<tr class="refresh"><td style="padding: 0.20em;">'+ 
           '<a href="#">'+item.forename+' '+item.surname+'</a>'+ 
           '</td><td style="padding: 0.20em;">'+item.role; 
          }else{ 
           members += '<tr class="refresh">'+ 
            '<td style="padding: 0.20em;">'+item.forename+' '+item.surname+'</td>'+ 
            '<td style="padding: 0.20em;">'+item.role; 
          } 
          if (item.r_id == 3){ 
           invite += '<li>'+item.forename+' '+item.surname+ 
            '<input type="checkbox" id="check'+i+'" name="invites[]" value="'+item.p_id+'" checked/>'+ 
            '<label style="float:right;" for="check'+i+'">&nbsp;</label></li>'; 
          i++; 
          } 
          members += '</td></tr>'; 

         }); 
         $("#team_list > tbody:last-child").append(members); 
        } 

麻烦的是复选框,我创建了一个VAR邀请和球员所有的名字进入变量。 代码后来我添加了动态表单

f +='</center></td></tr><tr><td class="invite_form-'+i+'" style="display:none;">'+ 
            '<form id="iForm'+i+'" name="addIForm'+i+'"><ul class="alt">'+invite+'</ul>'+ 
            '<a href="#" id="submitInvite'+i+'" class="button submitInvite fit small">Submit</a>'+ 
            '</form></td></tr>'; 
           i++; 
          } 

该页面加载,我可以打开的形式。第一种形式的作品,我可以点击复选框。当我打开第二个表单时,复选框单击第一个表单。

我假设它是因为复选框的ID。有没有人遇到过这个问题。

+1

为什么你要在forEach循环中声明和增加变量,你可以像使用回调函数一样使用索引参数?试试id =“check'+ index +'”',而不是现在使用的。或者,您也可以使用item.p_id连接输入的id。 –

+1

这可能是因为复选框的name属性相同。尝试为每组复选框创建唯一名称... – DouglasCamargo

回答

0

改成了一个JSON数组

if (item.r_id == 3){ 
           tmp ={ 'fore': item.forename, 
             'sur': item.surname, 
             'p_id': item.p_id 
            } 
           jsonObj.push(tmp); 
          } 

然后我循环的JSON和递增创建的每个复选框的ID,所以这并不重要,我有多少创造

f +='</center></td></tr><tr><td class="invite_form-'+i+'" style="display:none;">'+ 
            '<form id="iForm-'+i+'" name="addIForm-'+i+'"><ul class="alt">'; 
           $.each(jsonObj, function(index, item) { 
            f += '<li>'+item.fore+'<input type="checkbox" id="check-'+m+'" name="invites[]" value="" checked/>'+ 
            '<label style="float:right;" for="check-'+m+'">&nbsp;</label></li>'; 
            m++; 
           }); 
           f += '</ul>'+ 
            '<a href="#" id="submitInvite-'+i+'" class="button submitInvite fit small">Submit</a>'+ 
            '</form></td></tr>'; 
           i++; 
          } 

那这次我如何解决这个问题