代码之家  ›  专栏  ›  技术社区  ›  Vicky

如何获取复选框数组

  •  2
  • Vicky  · 技术社区  · 15 年前

    这是我的复选框组

    <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”的复选框数组,然后根据选中/取消选中的值进行设置。

    例如 在编辑模式下,我从数据库获取字符串012 然后我需要设置检查为全部,一个和两个。

    请帮忙谢谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   Christian C. Salvadó    15 年前

    如果采用这种方法,返回一个不由任何字符分隔的数字字符串(如“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 .

        2
  •  1
  •   Sampson    15 年前
    // 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");
      }
    });