checkbox 全选 全不选

money8899 2009-12-28 04:05:09


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
p {margin:0;font-size:12px;line-height:26px;}
</style>
<script type="text/javascript">
function check_all(obj,cName)
{
var checkboxs = document.getElementsByName(cName);

for(var i=0;i<checkboxs.length;i++)
{
checkboxs[i].checked = obj.checked;
}
}
</script>
</head>

<body>
<p>主;请选择管理员权限:<input type="checkbox" name="c" /></p>
<p>子;查看:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;修改:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;删除:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;禁用:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
</body>
</html>





当选择子菜单时,自己选择主菜单,我想问,子菜单有选择时,主菜单就得选择上,现在的问题是,我选了,查看,修改两项,取消查看时,主菜单也取消了,??怎么才能够子菜单有选择时,主菜单就得选择上
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
昆仑无悔 2010-06-09
  • 打赏
  • 举报
回复
高手这么多啊!!!
supper2008 2009-12-28
  • 打赏
  • 举报
回复
精彩,强力顶楼上啊
jiayouxh 2009-12-28
  • 打赏
  • 举报
回复
var checkboxs = document.getElementsByName(cName);
var arr= document.getElementsByName("all");
var flag=false;
for(var i=0;i<checkboxs.length;i++)
{
for(var k=0;k<arr.length;k++)
{
if(arr[k].checked==true)
{

flag=true;
}

}
if(flag)
{

checkboxs[i].checked ="true";
}
else
{
checkboxs[i].checked ="";
}
}
tiantianzzz 2009-12-28
  • 打赏
  • 举报
回复
再短些

var _n = 0;
function check_all(obj,cName)
{
_n = obj.checked ? _n+1 : _n-1;
document.getElementsByName(cName)[0].checked = !!_n;
}
xmliy 2009-12-28
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
p {margin:0;font-size:12px;line-height:26px;}
</style>
</head>

<body>
<p>主;请选择管理员权限:<input type="checkbox" name="c" id="c" /></p>
<p>子;查看:<input type="checkbox" name="all" value="" onclick="check_all('c', 'all')" /></p>
<p>子;修改:<input type="checkbox" name="all" value="" onclick="check_all('c', 'all')" /></p>
<p>子;删除:<input type="checkbox" name="all" value="" onclick="check_all('c', 'all')" /></p>
<p>子;禁用:<input type="checkbox" name="all" value="" onclick="check_all('c', 'all')" /></p>
</body>
</html>



function check_all(main,sub)
{
var main = document.getElementById('c'),
subs = document.getElementsByName(sub);
for(var i = 0, count = subs.length; i < count; i++)
{
if(subs[i].checked)
{
main.checked = true;
return;
}
}
main.checked = false;
}
tiantianzzz 2009-12-28
  • 打赏
  • 举报
回复
不用遍历的办法

var _n = 0;
function check_all(obj,cName)
{
_n = obj.checked ? _n+1 : _n-1;

if(_n){
document.getElementsByName(cName)[0].checked = true;
}else{
document.getElementsByName(cName)[0].checked = false;
}
}
jack_liu2 2009-12-28
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
p {margin:0;font-size:12px;line-height:26px;}
</style>
<script type="text/javascript">
function check_all(obj,cName)
{
var checkboxs = document.getElementsByName(cName);

//for(var i=0;i<checkboxs.length;i++)
//{
// checkboxs[i].checked = obj.checked;
//}
checkboxs[0].checked = checkAll();

}
function checkAll()
{

var checkboxAll = document.getElementsByName("all");
for(var i=0;i<checkboxAll.length;i++)
{
if(checkboxAll[i].checked)
{
return true;
}
}
return false;
}
</script>
</head>

<body>
<p>主;请选择管理员权限:<input type="checkbox" name="c" /></p>
<p>子;查看:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;修改:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;删除:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
<p>子;禁用:<input type="checkbox" name="all" value="" onclick="check_all(this,'c')" /></p>
</body>
</html>
千游 2009-12-28
  • 打赏
  • 举报
回复
function check_all(obj,cName)
{
var checkboxs = document.getElementsByName(cName);

for(var i=1;i<checkboxs.length;i++)
{
if(checkboxs[i].checked){checkboxs[1].checked = "checked"}
else{
//如果子的都取消的话,主 也应该取消吧,再遍历判断一下就可以了
}


}
}
freedom421 2009-12-28
  • 打赏
  • 举报
回复
function check_all(obj,cName)
{
var checkbox=document.getElementsByTagName("input");
//alert("1111");
var j=0;
for(var i=1;i<checkbox.length;i++){
if(checkbox[i].type=="checkbox"&&checkbox[i].name=="all"&&checkbox[i].checked){
checkbox[0].checked=true;
j+=1;
}
}
if(j==0){
checkbox[0].checked=false;
}
}
王集鹄 2009-12-28
  • 打赏
  • 举报
回复
选上 主菜单 必然选上 就不用判断
取消时判断一下同级菜单是否都取消即可。

function check_all(obj, cName) {
var found = obj.checked;
if (!found) { // 取消时
var checkboxs = document.getElementsByName(obj.name);
for (var i = 0; i < checkboxs.length && !found; i++)
if (checkboxs[i].checked) found = true;
}

var checkboxs = document.getElementsByName(cName);
for (var i = 0; i < checkboxs.length; i++) {
checkboxs[i].checked = found;
}
}
jiayouxh 2009-12-28
  • 打赏
  • 举报
回复
判断一下,子菜单有没有一个是选中的,是的话,主菜单也显示。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧