使用jQuery选择组中的多个复选框

时间:2013-07-09 08:56:59

标签: javascript jquery twitter-bootstrap

我必须在一个组中选择多个复选框,如果我必须按用户提供类似[“1”,“3”,“8”]的列表,则有10个复选框,其值属性设置为0到9必须选择值为1,3和8的复选框。如何完成?请回复!!

5 个答案:

答案 0 :(得分:2)

var arr = ['1','3','8'];
/* find all the checkbox input elements.
   set the 'checked' property */
$('input[type=checkbox]').prop('checked', function(){
    // return  true if the value is in the array, false if not
    return $.inArray(this.value, arr) > -1;
});

JS Fiddle demo

或者,使用filter()

var arr = ['1','3','8'];

$('input[type=checkbox]').filter(function(){
    return $.inArray(this.value, arr) > -1;
}).prop('checked',true);

JS Fiddle demo

但是,在设置属性之前,首先取消选中任何已经检查过的复选框可能是值得的:

var arr = ['1','3','8'];

$('input[type=checkbox]').prop('checked',false).filter(function(){
    return $.inArray(this.value, arr) > -1;
}).prop('checked',true);

JS Fiddle demo

最后,因为value的{​​{1}}始终是一个字符串,而JavaScript中的数字不必引用,以允许数组中不带引号的数字(以防止遗忘,如果没有别的):

input

JS Fiddle demo

参考文献:

答案 1 :(得分:1)

例如,对于值8:

<input type="checkbox" class="chk" name="myGroup[]" value="7" />
<input type="checkbox" class="chk" name="myGroup[]" value="8" />

<script>
  $(".chk[value='8']").prop("checked", true);
</script>

答案 2 :(得分:1)

这是一种方法 - 给你的复选框一个公共类,即“myCheckbox”。

使用jQuery迭代所有带有“myCheckbox”类的复选框,并将它们的值与用户提供的列表进行比较。如果匹配,请选中复选框。

伪jQuery代码:

$('.myCheckbox').each(function() {
  // you would search the array here
  if ($(this).value == "1") {
    $(this).check();
  }
});

答案 3 :(得分:0)

你可以试试这个 -

var arr =  ["1","3","8"];
$(':checkbox').each(function(){
  if($.inArray(this.value,arr) > -1){
   $(this).prop('checked',true);
  }
}) 

答案 4 :(得分:0)

这可以解决您的问题:

var setArr = ["1","3","8"];

$('.checkbox').each(function(i, j){
if(jQuery.inArray($(j).val(), setArr)!= -1){

$(j).attr('checked', 'checked');
}

});

FIDDLE