口sequencing
口plasmid
口pcr product
口phage
如果先选了大的checkbox(sequencing),下面三个小的可任意选。
如果先选择了任意一个小的,不可以反选大的。
口plasmid
口pcr product
口phage
如果先选了大的checkbox(sequencing),下面三个小的可任意选。
如果先选择了任意一个小的,不可以反选大的。
解决方案 »
- 用户控件传值的问题
- 在WIN2003下配置ASP.NET 2.0 的问题,搜索没有找到。
- 如果不用VS打包,我想把做的网站给别人用可不可以这样?
- 在win2003上vs.net2005远程调试问题
- 哪位好心人,给我讲一下我编译后生成了一个DLL文件,我下一步该怎么做,详细点啊,不会,求你们了
- 有关.net的几个问题,散分...
- ASP.NET在什么情况下可以在<%和%>之间写多行代码?!
- DataGrid 分页的高级问题!!!!
- FormsAuthentication安全性讨论,主要是客户端Cookie中重要的用户名密码是否安全。
- WebDev.WebServer.EXE 拒绝访问
- pop3 怎么用C#创建新用户啊
- 如何通过asp.net修改域用户密码
如果第一个没选,可选么?选了可选没么?
可以理解为默认选中或者enable了。
function changeC(obj,id){
if(obj.checked == true){
document.getElementById(id).checked=true;
}
}
//生成checkBox的时候小的checkBox给这个事件 onclick="chageC(this,'大的checkBox的ID')"
<script type="text/javascript">
//可以在treeview 中用
//OnClick = "OnTreeNodeChecked();"
function OnTreeNodeChecked() {
var ele = event.srcElement;
if (ele.type == 'checkbox') {
var childrenDivID = ele.id.replace('CheckBox', 'Nodes');
var div = document.getElementById(childrenDivID);
if (div != null) {
var checkBoxs = div.getElementsByTagName('INPUT');
for (var i = 0; i < checkBoxs.length; i++) {//向下
if (checkBoxs[i].type == 'checkbox')
checkBoxs[i].checked = ele.checked;
}
}
OnTreeNodeChildChecked(ele);
}
} function OnTreeNodeChildChecked(ele) {//向上
//递归处理
var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;
var parentChkBox = null;
try {
parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
}
catch (error) { ; }
if (parentChkBox != null) {
var ChildsChkAll = true;
var Boxs = parentDiv.getElementsByTagName('INPUT');
for (var i = 0; i < Boxs.length; i++) {
if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
ChildsChkAll = false;
}
}
parentChkBox.checked = ChildsChkAll;
OnTreeNodeChildChecked(parentChkBox);
}
}
</script>
<script type="text/javascript">
//可以在treeview 中用
//OnClick = "OnTreeNodeChecked();"
function OnTreeNodeChecked() {
var ele = event.srcElement;
if (ele.type == 'checkbox') {
var childrenDivID = ele.id.replace('CheckBox', 'Nodes');
var div = document.getElementById(childrenDivID);
if (div != null) {
var checkBoxs = div.getElementsByTagName('INPUT');
for (var i = 0; i < checkBoxs.length; i++) {//向下
if (checkBoxs[i].type == 'checkbox')
checkBoxs[i].checked = ele.checked;
}
}
OnTreeNodeChildChecked(ele);
}
} function OnTreeNodeChildChecked(ele) {//向上
//递归处理
var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;
var parentChkBox = null;
try {
parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
}
catch (error) { ; }
if (parentChkBox != null) {
var ChildsChkAll = true;
var Boxs = parentDiv.getElementsByTagName('INPUT');
for (var i = 0; i < Boxs.length; i++) {
if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
ChildsChkAll = false;
}
}
parentChkBox.checked = ChildsChkAll;
OnTreeNodeChildChecked(parentChkBox);
}
}
</script>
<input type="checkbox" name="id" onclick="selectSubDiv('parent1',this)">
</div>
<div id="subparent1">
<input type="checkbox" name="id" onclick="SetParent('parent1')">
<input type="checkbox" name="id" onclick="SetParent('parent1')">
<input type="checkbox" name="id" onclick="SetParent('parent1')">
</div><script type="text/javascript">
function SetParent(id)
{
var obj=document.getElementById(id);
if(obj==null)
return;
var sub=document.getElementById("sub"+id);
if(sub==null)
return;
var el=sub.getElementsByTagName("input")
var flag=false;
for(var i=0;i<el.length;i++) //判断子Div是否有选中情况
{
if(el[i].type=="checkbox" && el[i].checked)
{
flag=true;
}
}
el=obj.getElementsByTagName("input");//得到父Div checkbox
if(el!=null && el.length>0)
{
el[0].checked=flag;
}
}function selectSubDiv(id,obj)
{
var sub=document.getElementById("sub"+id);
if(sub==null)
return;
var el=sub.getElementsByTagName("input")
var flag=obj.checked;
for(var i=0;i<el.length;i++) //父选中,子跟着选中
{
if(el[i].type=="checkbox")
{
el[i].checked=flag;
}
}}</script>以上代码,没有调试,原理基本上就是这个
<input type="checkbox" name="2" id="2" value="2" onclick="changeLittle(this)" disabled="true"/>病假<br>
<input type="checkbox" name="3" id="3" value="3" onclick="changeLittle(this)" disabled="true"/>年假<br>
<script language="javascript" >
function changeLarge(obj) {
if(obj.checked == true){
document.getElementById(2).disabled=false;
document.getElementById(3).disabled=false;
} else {
document.getElementById(2).disabled=true;
document.getElementById(3).disabled=true;
}
}
function changeLittle(obj) {
if(obj.checked == true) {
document.getElementById(1).disabled=true;
}else {
if(document.getElementById(2).checked == false && document.getElementById(3).checked == false) {
document.getElementById(1).disabled=false;
}
}
}
</script>
全用SPAN和CHECKBOX循环出来的,
有4级,三百多行,
CHECKBOX的勾选联动也没你们这么复杂。我的规则是:
1〉如果子节点被选中,父节点相应要选中,并且上朔。
2〉如果父节点被选中,子节点相应要全部选中(并且上朔)
3〉如果父节点被反选(去掉勾),子节点相应要全部反选(并且上朔)
4〉如果子节点全部被反选,父节点相应要反选。
if(obj.checked == true){
document.getElementById(id).checked=true;
}
}
//生成checkBox的时候小的checkBox给这个事件 onclick="chageC(this,'大的checkBox的ID')"obj是小的,id是大的,这个完全可以实现到。
不要搞的那么复杂。尽量把复杂的简单化
父级ID 为一级 如01
子级ID 为二级 如01_01name 相同oncheck(this.id)判断长度,或判断_存在不存在,存在则SUBSTR进行父菜单同时选中,
如果不存在,则不操作 或全选所有以父ID开头的CHECKBOX暂时我所有的JS都是这么做级联选择的。
<script type="text/javascript" charset="gb2312">
function change(evag)
{
var arr = document.getElementById("childrencla").getElementsByTagName("input");
for(var i = 0; i < arr.length; i ++ )
{
if(arr[i].checked)
{
evag.checked = true;
return;
}
}
}
function chang2(evag)
{
if(evag.checked)
{
document.getElementById("top").checked = true;
}
}
</script>
</head>
<body>
<div class="topcla">
<input id="top" type="checkbox" onclick="change(this);"/>
<label for="top">sequencing</label>
<div id="childrencla">
<input id="child1" type="checkbox" onclick="chang2(this);"/>
<label for="child1">plasmid</label><br/>
<input id="child2" type="checkbox" onclick="chang2(this);"/>
<label for="child2">pcrproduct</label><br/>
<input id="child3" type="checkbox" onclick="chang2(this);"/>
<label for="child3">phage</label><br/>
</div>
</div>
</body>
加了css:
<html><head><title></title>
<style type="text/css">
.topcla{ width : 150px ; background-color : #de2 ;}
.childrencla{ margin-left : 20px ; background-color : #a35 ;}
</style>
<script type="text/javascript" charset="gb2312">
function change(evag)
{
var arr = document.getElementById("children").getElementsByTagName("input");
for(var i = 0; i < arr.length; i ++ )
{
if(arr[i].checked)
{
evag.checked = true;
return;
}
}
}
function chang2(evag)
{
if(evag.checked)
{
document.getElementById("top").checked = true;
}
}
</script>
</head>
<body>
<div class="topcla">
<input id="top" type="checkbox" onclick="change(this);"/>
<label for="top">sequencing</label>
<div id="children" class="childrencla">
<input id="child1" type="checkbox" onclick="chang2(this);"/>
<label for="child1">plasmid</label><br/>
<input id="child2" type="checkbox" onclick="chang2(this);"/>
<label for="child2">pcrproduct</label><br/>
<input id="child3" type="checkbox" onclick="chang2(this);"/>
<label for="child3">phage</label><br/>
</div>
</div>
</body>
</html>
if(CheckObj.checked == true){
document.getElementById(CheckID).checked=true;
}
}
这个比较简单吧,带俩参
var obj=document.getElementsByName('子复选框的Name');
for(int i=0;i<obj.length;i++)
{
if(Fcheck.checked=true)
{
obj[i].checked=!obj[i].checked;
}
if(obj[i].checked=true)
{
Fcheck.checked=true;
}
}
弄错了。。
这下面的是全选。或全不选
for(int i=0;i<obj.length;i++)
{
if(Fcheck.checked=true)
{
obj[i].checked=true;
}
else
{
obj[i].checked=false;
}
if(obj[i].checked=true)
{
Fcheck.checked=true;
}
document.getElementById("大的").checked = true
OnTreeNodeChildChecked(parentChkBox