检查所有checbox,如果它们具有相同的值

时间:2015-07-29 12:09:51

标签: javascript jquery html

这是我的HTML代码:

 <ul>
   <li>
  <input name="Services[]" class="form-control" value="Canbeprivatized" id="Canbeprivatized" type="checkbox"><label for="Canbeprivatized">Can be privatized </label>
   </li>
   <li>
   <input name="Services[]" class="form-control" value="Englishspoken" id="Englishspoken" type="checkbox"><label for="Englishspoken">English spoken </label>
   </li>
   <li>
   <input name="Services[]" class="form-control" value="Françaisparle" id="Françaisparle" type="checkbox"><label for="Françaisparle">Français parlé </label>
   </li>
   <li>
   <input name="Services[]" class="form-control" value="Petsallowed" id="Petsallowed" type="checkbox"><label for="Petsallowed">Pets allowed </label>
   </li>
   <li>
   <input name="Services[]" class="form-control" value="Piscine" id="Piscine" type="checkbox"><label for="Piscine">Piscine </label>
   </li></ul>

jQuery代码:

var tab = new Array();
tab = data.services.split(",");// data is values of Checkboxes inserted in create form, so now i need to show it because this is edit form

我的问题是如何检查选项卡中值等于值的所有复选框。 需要你的帮助,谢谢

3 个答案:

答案 0 :(得分:4)

执行以下操作,迭代tab

for (i = 0; i < tab.length; i++)
  $('input[type=checkbox][value=' + tab[i] + ']').prop("checked", true);

答案 1 :(得分:1)

您可以使用.filter()查找数组checkboxes中存在其值的所有tab,然后使用.prop()设置其checked属性

$(':checkbox').filter(function(){
    return tab.indexOf($(this).val()) > -1;
}).prop('checked', true);

答案 2 :(得分:0)

如果我理解正确,这应该有效

var tab = 'Englishspoken,Petsallowed';
tab = tab.split(",");
var $input = $('input');
for (var i = 0; i < $input.length; i++){
    for (var j = 0; j < tab.length; j++){
        if ($input.eq(i).val() == tab[j]){
            $input.eq(i).prop('checked', true);
        }
    }
}

JSFiddle