一个页面有多组复选框,怎样控制每组复选框被选中的状态
如题,这个问题应该不难,可是我只会一组的情况,当页面有多组复选框的时候,就不知道如何解决了。
一组的时候,我使用的是jquery来控制:
$(function() {
$("#cbxAll").click(function() {
$('input[type=checkbox]').attr("checked", $(this).attr("checked"));
});
})
没办法区分多组的情况,在网上搜索了,没有适当的简洁的,都比较乱。
麻烦各位有做过的,不吝赐教,在线等,谢谢!!! checkbox?jquery
[解决办法]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
//name 是html表单专用于区别各组 chechbox 的属性, 不要用id(必须唯一)或者其它属性
function getValues() {
var aV = getCheckboxValues("a");
var bV = getCheckboxValues("b");
var cV = getCheckboxValues("c");
var result = "a组选中值: " + (aV=="" ? "未选中任何值" : aV) + "\n" +
"b组选中值: " + (bV == "" ? "未选中任何值" : bV) + "\n" +
"c组选中值: " + (cV == "" ? "未选中任何值" : cV);
alert(result);
}
function getCheckboxValues(name) {
return $(":checkbox[name="+name+"]:checked").map(function(){
return $(this).val();
}).get().join(",");
}
function chkAll(obj) {
var name = $(obj).attr("name");
//也许你觉得我写得太复杂, 但jquery 版本众多, 可以学点东西总是好的
//1. jquery 1.6 以上
//$(":checkbox[name=" + name.substring(0, 1) + "]").prop("checked", $(obj).prop("checked"));
//2. jquery 1.6 以下
//$(":checkbox[name=" + name.substring(0, 1) + "]").attr("checked", $(obj).attr("checked"));
//3. 通用写法
$(":checkbox[name=" + name.substring(0, 1) + "]").each(function () {
this.checked = obj.checked;
});
}
</script>
</head>
<body>
<div >
<span>第1组(a):<input type="checkbox" name="aAll" onclick="chkAll(this)" />全选/全不选</span>
<input type="checkbox" name="a" value="a1" checked="checked" />a1
<input type="checkbox" name="a" value="a2" checked="checked" />a2
<input type="checkbox" name="a" value="a3" />a3
<input type="checkbox" name="a" value="a4" />a4<br />
<span>第2组(b):<input type="checkbox" name="bAll" onclick="chkAll(this)" />全选/全不选</span>
<input type="checkbox" name="b" value="b1" />b1
<input type="checkbox" name="b" value="b2" checked="checked" />b2
<input type="checkbox" name="b" value="b3" checked="checked" />b3
<input type="checkbox" name="b" value="b4" />b4<br />
<span>第3组(c):<input type="checkbox" name="cAll" onclick="chkAll(this)" />全选/全不选</span>
<input type="checkbox" name="c" value="c1" />c1
<input type="checkbox" name="c" value="c2" />c2
<input type="checkbox" name="c" value="c3" checked="checked" />c3
<input type="checkbox" name="c" value="c4" checked="checked" />c4<br />
<br />
<input type="button" value="查找每组的选中的值" onclick="getValues()" />
</div>
</body>
</html>