<input type="checkbox" onpropertychange="checkChild('a',this.checked)">
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<script>
function checkChild(name,chk){
var list = document.getElementsByName(name);
for(var i=0;i<list.length;i++)
list[i].checked = chk;
}
</script>
<input type="checkbox" name="a">
<input type="checkbox" name="a">
<script>
function checkChild(name,chk){
var list = document.getElementsByName(name);
for(var i=0;i<list.length;i++)
list[i].checked = chk;
}
</script>
<input type="checkbox" name="a" onclick="checkParent('a0',this)">
<input type="checkbox" name="a" onclick="checkParent('a0',this)">
<script>
function checkChild(name,obj){
var list = document.getElementsByName(name);
for(var i=0;i<list.length;i++)
list[i].checked = obj.checked;
}
function checkParent(id,obj){
var obj0=document.getElementById(id);
if(!obj.checked){
obj0.checked=false;
return;
}
var list = document.getElementsByName(obj.name);
for(var i=0;i<list.length;i++)
if(!list[i].checked)return;
obj0.checked=true;
}
</script>效率不高,见谅,数据少可以支持
也可以把一组(包括大类)都取同一名称,用下标来区分
<!--
function chkClk(obj){
var chks=document.getElementsByName(obj.name);
//alert(chks.length);
if(obj.flag=="main"){
for(var i=1;i<chks.length;i++)
chks[i].checked=obj.checked;
}
else{
for(var i=1;i<chks.length;i++)
if(chks[i].checked==false){
chks[0].checked=false;
break;
}
else{
if(i==chks.length-1) chks[0].checked=true;
}
}
}
//-->
</script><input type="checkbox" onclick="chkClk(this)" name="type1" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<br><br>
<input type="checkbox" onclick="chkClk(this)" name="type2" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
取消大类->...?
选择小类->...?
取消小类->...?建议自己学习语法,出问题再说
可不可以推荐几本Javascript的书呢?我的意思是:选大类 --> enable小类 同时全选小类,取消大类选择-->disable小类, 取消小类选择。
<input type="checkbox" name="a">
<input type="checkbox" name="b" onclick="checkChild(this)">
<input type="checkbox" name="b">
<script language=javascript>
function checkChild(obj){
var list = document.getElementsByName(obj.name);
var chk = obj.checked;
for(var i=1;i<list.length;i++){
list[i].checked=chk;
list[i].disabled=!chk;
}
}
</script>
function checkChild(name,chk){
var list = document.getElementsByName(name);
for(var i=0;i<list.length;i++)
{
list[i].checked = chk;
}
}function checkParent(id,obj){
var obj0=document.getElementById(id);
if(obj.checked){
obj0.checked=true;
return;
}
else
{
obj0.checked=false;
}
var list = document.getElementsByName(obj.name);
for(var i=0;i<list.length;i++)
if(list[i].checked)
obj0.checked=true;
} </script>用了一下符合自己的要求,还没仔细研究一下,有点不明白其中的逻辑,再次感谢 fosjos
function chkParent(op,str){
var needchk = document.getElementsByName(str);
if(op.checked){
if(needchk != null){
if(needchk.length != null){
for(var i = 0 ;i<needchk.length ;i++){
needchk[i].checked = true;
}
}else{
needchk.checkde = true;
}
}
}else{
if(needchk != null){
if(needchk.length != null){
for(var i = 0 ;i<needchk.length ;i++){
needchk[i].checked = false;
}
}else{
needchk.checked = false;
}
} }
}
function chkClk(op,str,nameStr){
var needchk = document.getElementById(str);
var testchk = document.getElementsByName(nameStr);
var flag;
if(op.checked){
if(testchk != null){
if(testchk .length != null){
for(var i = 0 ;i<testchk .length ;i++){
if(!testchk [i].checked){
flag = 0;
break;
}
}
}else{
if(!testchk .checked){
flag = 0;
}
}
}
if(flag !=0){
needchk.checked = true;
}else{
needchk.checked = false;
}
}else{
needchk.checked = false;
}
}<input type="checkbox" onclick="chkParent(this,'type1')" name="type3" id="type3" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this,'type3','type1')" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this,'type3','type1')" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this,'type3','type1')" name="type1">typetext</li><br/><br/>
<input type="checkbox" onclick="chkParent(this,'type2')" name="type4" id="type4" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this,'type4','type2')" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this,'type4','type2')" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this,'type4','type2')" name="type2">typetext</li>