2016-06-24 33 views
-1

我有以下的HTML(其为反应真的JSX代码,但它是相同的):检查所有复选框相匹配的数组项

<div id="roles-checkboxes"> 
    <label id={role} key={index} ><input type="checkbox" name="checkbox" value={role.role} /> {role.role}</label> 
    <label id={role} key={index} ><input type="checkbox" name="checkbox" value={role.role} /> {role.role}</label>  
</div> 

我有我进入我的功能数组,其中包含所有的应当检查role复选框:

checkRoleBoxes(roles){ 
    $('#roles-checkboxes').each(function(){ 
     if ($.inArray($(this).val(), roles)){ 
      $(this).prop('checked', true); 
     } 
    }) 

我似乎无法得到,尽管我发现的功能相匹配的箱子检查,我在设置checked属性错了吗?我也试过$(this).attr('checked', true);没有运气。

+1

您使用的'每()'上'id'选择意味着你有相同'id'这是无效的,而且将是你的问题的原因多个元素。将这些复选框的'id'改为一个类。 –

+0

@RoryMcCrossan他甚至没有选择他正在选择父div的输入 – MoustafaS

回答

0

更改选择是:

$('#roles-checkboxes input') 
0

我敢肯定这一点:

$('#roles-checkboxes').each(); 

是简单地遍历一个DIV。也许它更改为:

$('#roles-checkboxes input[type=checkbox]').each();