var length = document.form1.elements.length;
function selecta(id,checkbox,parent_id){
parent = "checkbox" + parent_id;
id = id + "checkbox";
if(checkbox.checked == true){
for(var i = 0;i < length;i++){
var ele = document.form1.elements[i];
if(ele.name.indexOf(parent) >= 0){
ele.checked = true;
ele.disabled = false;
}
if(ele.name.indexOf(id) >= 0){
ele.checked = true;
ele.disabled = false;
}
}
}
}out.print("<input name='"+rsTreeMap.get("rs_id")+"checkbox"+rsTreeMap.get("parent_rs_id")+"' type='checkbox' onClick=function(){selecta("+rsTreeMap.get("rs_id").toString()+",this,"+rsTreeMap.get("parent_rs_id").toString()+")} value='"+rsTreeMap.get("rs_id")+"'> ");
function selecta(id,checkbox,parent_id){
parent = "checkbox" + parent_id;
id = id + "checkbox";
if(checkbox.checked == true){
for(var i = 0;i < length;i++){
var ele = document.form1.elements[i];
if(ele.name.indexOf(parent) >= 0){
ele.checked = true;
ele.disabled = false;
}
if(ele.name.indexOf(id) >= 0){
ele.checked = true;
ele.disabled = false;
}
}
}
}out.print("<input name='"+rsTreeMap.get("rs_id")+"checkbox"+rsTreeMap.get("parent_rs_id")+"' type='checkbox' onClick=function(){selecta("+rsTreeMap.get("rs_id").toString()+",this,"+rsTreeMap.get("parent_rs_id").toString()+")} value='"+rsTreeMap.get("rs_id")+"'> ");
out.print("<input name=id+checkbox+parent_id type=checkbox onClick=function(){selecta(id,this,parent_id)} value=id");
<%
for(int i = 0;i < num;i++){
out.print("<input name=get.id(i)+checkbox+get.parent_id(i)type=checkbox value=get.name(i)" onclick=function(){selecta(get.id(i),this,get.parent_id(i))});
}
%>var length = document.form1.elements.length;
function selecta(id,checkbox,parent_id){
parent = "checkbox" + parent_id;
id = id + "checkbox";
if(checkbox.checked == true){
for(var i = 0;i < length;i++){
var ele = document.form1.elements[i];
if(ele.name.indexOf(parent) >= 0){
ele.checked = true;
ele.disabled = false;
}
if(ele.name.indexOf(id) >= 0){
ele.checked = true;
ele.disabled = false;
}
}
}
}
<HEAD>
<TITLE> emu's test of simple tree</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkSelect(){
var elm = event.srcElement.parentNode;
checkChildrenRecurve(elm);
checkRootRecurve(document.getElementById("root"));
}
function checkChildrenRecurve(elm){
var li = elm.parentNode;
var ul = li.lastChild;
if (ul.tagName != "UL") return;
var lis = ul.children;
for (var i=0;i<lis.length;i++){
lis[i].firstChild.firstChild.checked=elm.firstChild.checked;
checkChildrenRecurve(lis[i].firstChild)
}
}
function checkRootRecurve(ul){
if (ul.tagName != "UL") {
ul.parentNode.firstChild.firstChild.allChecked = ul.parentNode.firstChild.firstChild.checked;
ul.parentNode.firstChild.firstChild.allUnChecked = !ul.parentNode.firstChild.firstChild.checked;
return;
}
var lis = ul.children;
var allChecked = true;
var allUnChecked = true;
for (var i=0;i<lis.length;i++){
checkRootRecurve(lis[i].lastChild);
allChecked = allChecked && lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allChecked;
allUnChecked = allUnChecked && !lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allUnChecked;
}
ul.parentNode.firstChild.firstChild.allChecked=allChecked;
ul.parentNode.firstChild.firstChild.allUnChecked=allUnChecked;
if (allChecked || allUnChecked){
ul.parentNode.firstChild.firstChild.checked=allChecked;
ul.parentNode.firstChild.firstChild.disabled=false;
ul.parentNode.firstChild.childStatus=false;
}else{
ul.parentNode.firstChild.firstChild.disabled=true;
ul.parentNode.firstChild.childStatus=true;
ul.parentNode.firstChild.firstChild.checked=true;
}
}
function enableFirstChild(){
this.childStatus = this.firstChild.disabled;
this.firstChild.disabled=false;
}
function recoverFirstChild(){
this.firstChild.disabled = this.childStatus;
}
function init(){
var elms = document.getElementsByTagName("INPUT");
for (var i=0;i<elms.length;i++)
elms[i].onclick=checkSelect;
var elms = document.getElementsByTagName("SPAN");
for (var i=0;i<elms.length;i++){
elms[i].onmouseover=enableFirstChild;
elms[i].onmouseout=recoverFirstChild;
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="init()">
<div>
<span><input type=checkbox></span>
<UL id=root>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
</UL>
</UL>
</div>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> emu's test of simple tree</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkSelect(){
var elm = event.srcElement.parentNode;
checkChildrenRecurve(elm);
checkRootRecurve(document.getElementById("root"));
}
function checkChildrenRecurve(elm){
var li = elm.parentNode;
var ul = li.lastChild;
if (ul.tagName != "UL") return;
var lis = ul.children;
for (var i=0;i<lis.length;i++){
lis[i].firstChild.firstChild.checked=elm.firstChild.checked;
checkChildrenRecurve(lis[i].firstChild)
}
}
function checkRootRecurve(ul){
if (ul.tagName != "UL") {
ul.parentNode.firstChild.firstChild.allChecked = ul.parentNode.firstChild.firstChild.checked;
ul.parentNode.firstChild.firstChild.allUnChecked = !ul.parentNode.firstChild.firstChild.checked;
return;
}
var lis = ul.children;
var allChecked = true;
var allUnChecked = true;
for (var i=0;i<lis.length;i++){
checkRootRecurve(lis[i].lastChild);
allChecked = allChecked && lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allChecked;
allUnChecked = allUnChecked && !lis[i].firstChild.firstChild.checked && lis[i].firstChild.firstChild.allUnChecked;
}
ul.parentNode.firstChild.firstChild.allChecked=allChecked;
ul.parentNode.firstChild.firstChild.allUnChecked=allUnChecked;
if (allChecked || allUnChecked){
ul.parentNode.firstChild.firstChild.checked=allChecked;
ul.parentNode.firstChild.firstChild.indeterminate=false;
ul.parentNode.firstChild.childStatus=false;
}else{
ul.parentNode.firstChild.firstChild.indeterminate=true;
ul.parentNode.firstChild.childStatus=true;
ul.parentNode.firstChild.firstChild.checked=true;
}
}
function init(){
var elms = document.getElementsByTagName("INPUT");
for (var i=0;i<elms.length;i++)
elms[i].onclick=checkSelect;
var elms = document.getElementsByTagName("SPAN");
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="init()">
<div>
<span><input type=checkbox></span>
<UL id=root>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
<LI><span><input type=checkbox></span>
<UL>
<LI><span><input type=checkbox></span>
<LI><span><input type=checkbox></span>
</UL>
</UL>
</UL>
</div>
</BODY>
</HTML>