以下脚本只限于2级结构,如果有第三级 不知该怎么写?求助<FORM id=weaver name=frmmain method=post>
<table class=Form>
<tr class=field>
<td colspan=2 align=left>
<input type="checkbox" name="m12" value="M12" onclick="checkMain('12')">
<b>
系统使用
</b>
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s12" value="S27" onclick="checkSub('12')">
系统使用规范
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s12" value="S28" onclick="checkSub('12')">
系统功能介绍
</td>
</tr>
</table>
<table class=Form>
<tr class=field>
<td colspan=2 align=left>
<input type="checkbox" name="m7" value="M7" onclick="checkMain('7')">
<b>
会议资料
</b>
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s7" value="S12" onclick="checkSub('7')">
会议资料
</td>
</tr>
</table>
</form>
<script>
function checkMain(id) {
len = document.frmmain.elements.length;
var mainchecked = document.all("m" + id).checked;
var i = 0;
for (i = 0; i < len; i++) {
if (document.frmmain.elements[i].name == 's' + id) {
document.frmmain.elements[i].checked = mainchecked;
}
}
}; function checkSub(id) {
len = document.frmmain.elements.length;
var i = 0;
for (i = 0; i < len; i++) {
if (document.frmmain.elements[i].name == 's' + id) {
if (document.frmmain.elements[i].checked) {
document.all("m" + id).checked = true;
return;
}
}
}
document.all("m" + id).checked = false;
};
</script>
<table class=Form>
<tr class=field>
<td colspan=2 align=left>
<input type="checkbox" name="m12" value="M12" onclick="checkMain('12')">
<b>
系统使用
</b>
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s12" value="S27" onclick="checkSub('12')">
系统使用规范
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s12" value="S28" onclick="checkSub('12')">
系统功能介绍
</td>
</tr>
</table>
<table class=Form>
<tr class=field>
<td colspan=2 align=left>
<input type="checkbox" name="m7" value="M7" onclick="checkMain('7')">
<b>
会议资料
</b>
</td>
</tr>
<tr class="field">
<td>
</td>
<td>
<input type="checkbox" name="s7" value="S12" onclick="checkSub('7')">
会议资料
</td>
</tr>
</table>
</form>
<script>
function checkMain(id) {
len = document.frmmain.elements.length;
var mainchecked = document.all("m" + id).checked;
var i = 0;
for (i = 0; i < len; i++) {
if (document.frmmain.elements[i].name == 's' + id) {
document.frmmain.elements[i].checked = mainchecked;
}
}
}; function checkSub(id) {
len = document.frmmain.elements.length;
var i = 0;
for (i = 0; i < len; i++) {
if (document.frmmain.elements[i].name == 's' + id) {
if (document.frmmain.elements[i].checked) {
document.all("m" + id).checked = true;
return;
}
}
}
document.all("m" + id).checked = false;
};
</script>
解决方案 »
- JavaScript登录为空 为什么还能登录那 高手给看看
- 求正则,找出字符串中的-,-或-,或,-
- 各位帮帮忙谢谢 js文本框的问题
- A页面的JS怎么和B页面的ActiveX传值交互
- 谁有这样的一个javascript 脚本
- 梅花雪?进来帮帮忙!表单聚焦打开窗口位置?
- 想问问大家,showmodaldialog可不可以加上滚动条啊?
- 怎样保存下拉列表的值~~,还一个问题另加100分,绝不食言~~~~!~~~~
- 为什么在本机直接运行html可以,而放到webserver上就不能运行了呢?
- 急:用JAVASCRIPT或VBSCRIPT可能读出IE中存储的证书的内容吗?
- [JAVASCRIPT]<input type='file' 事件onchange的问题
- 关于字符串的比较问题
<!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=utf-8" />
<title>无标题文档</title>
<style type="text/css">
ul { list-style:none; }
</style>
<script type="text/javascript">
window.onload = function() {
var obj = document.getElementById('demo').getElementsByTagName('input');
for (var i = 0; i < obj.length; i ++) {
obj[i].onclick = function() {
//查找并选择/取消选择所有子项
var childrenObj = this.parentNode.getElementsByTagName('ul');
if (childrenObj.length > 0) {
for (var j = 0; j < childrenObj.length; j ++) {
var o = childrenObj[j].getElementsByTagName('input');
for (var k = 0; k < o.length; k ++) o[k].checked = this.checked;
}
}
//递归方法检查并设置父选项选择状态
checkParent(this);
}
}
}function checkParent(obj) {
var parentObj = obj.parentNode.parentNode;
if (parentObj.id != 'demo') {
parentObj = parentObj.parentNode;
var FLAG = true; //标志位,true表示父级选项的所有子选项都是选中的,初始值为true,假设全部为选中
var o = parentObj.getElementsByTagName('input');
for (var i = 1; i < o.length; i ++) {
if (!o[i].checked) {
FLAG = false;
break;
}
}
if (FLAG) o[0].checked = true;
else o[0].checked = false;
if (parentObj.parentNode.parentNode.id != 'demo') checkParent(o[0]);
}
}
</script>
</head><body>
<form id="weaver" name="frmmain" method="post">
<ul id="demo">
<li><input type="checkbox" />系统使用
<ul>
<li><input type="checkbox" />系统使用规范</li>
<li><input type="checkbox" />系统功能介绍
<ul>
<li><input type="checkbox" />三级选项1
<ul>
<li><input type="checkbox" />四级选项1</li>
</ul>
</li>
<li><input type="checkbox" />三级选项2</li>
</ul>
</li>
</ul>
</li>
<li><input type="checkbox" />会议资料
<ul>
<li><input type="checkbox" />会议资料</li>
</ul>
</li>
</ul>
</form>
</body>
</html>