如何获取复选框数组

时间:2010-01-13 04:39:27

标签: jquery

这是我的复选框组

<input type="checkbox" name="checkGroup" id="all" value="0" >All 
<input type="checkbox" name="checkGroup" id="one" value="1">One 
<input type="checkbox" name="checkGroup" id="two" value="2">Two 
<input type="checkbox" name="checkGroup" id="three" value="3">three 

如何通过名称“checkGroup”获取复选框数组,然后根据值设置选中/取消选中。

e.g。 在编辑模式下,我从数据库中获取字符串012 然后我需要设置为All,One amd Two。

请帮助谢谢

2 个答案:

答案 0 :(得分:1)

// Help us with finding values in arrays
Array.prototype.has=function(v){
  for (i=0; i<this.length; i++) {
    if (this[i]==v) return true;
  }
  return false;
} 

// Define our values
var myVals = [0,1,2];

// Check/Uncheck Accordingly
$(":checkbox[name='checkGroup']").each(function(){
  if (myVals.has($(this).val())) {
    $(this).attr("checked","checked");
  } else {
    $(this).removeAttr("checked");
  }
});

答案 1 :(得分:1)

如果你采用这种方法,返回一串未被任何字符分隔的数字(如“012”),你只能处理多达10个元素(0-9)的问题:

function checkItems(str) {
  var checkboxes = $("input:checkbox[name='checkGroup']");
  checkboxes.attr('checked', false); // uncheck all boxes first
  checkboxes.each(function () {
    if (str.indexOf(this.value) >=0) {
      this.checked = true;
    }
  });
}

checkItems('012'); // checks all, one, and two

查看示例here