2010-01-13 101 views
2

的阵列这里是我的复选框组如何获取复选框

<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,那么我需要设置检查为全部,一个和两个。

请帮助谢谢

回答

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

+0

什么与值12不是在0,1或2,但似乎是因为012类似于0 12? – Sampson 2010-01-13 04:56:09

+0

用''12'它会检查“一个”和“两个”框(我认为这是OP所期望的行为) – CMS 2010-01-13 05:01:01

+0

ya其工作thanksJonathan – Vicky 2010-01-13 05:01:05

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"); 
    } 
});