如何使checkbox变灰?

时间:2021-08-24 07:06:09
1.在Web上实现一树,树中每个节点中均有一CheckBox。如果某节点下,有子节点被选中,但又不是所有子节点被选中时,需要将该节点的checkbox置灰。
   目前试验了两种方法均无法实现
     a).设置disabled=true。可以变灰,但是就无法接收事件了
     b).设置style.backGroundColor="gray"。不是空间内部变灰
   请问我应当怎样达到这个目的?谢谢

2.希望在选中某一节点时,将其下所有子节点(包括子节点的子节点……)全部选中。但是好像由于javascript变量是全局共享的,所以无法在递归函数中使用for循环。那我应当怎样便利选中节点下的字节点呢?

6 个解决方案

#1


disabled

#2


但是disabled就无法接收onclick事件了.

#3


既然变灰了,还要接收onclick事件?
那干脆不要变灰,在onclick事件发生时,用javascript判断提示...

#4


<script language="JavaScript" type="text/JavaScript">
function doCheck(obj) { 
for(var i=0 ;i<(obj.parentNode.children[1].children.length);i++){
obj.parentNode.children[1].children[i].checked=(obj.parentNode.children[1].children[i].checked==true)?false:(obj.parentNode.children[1].children[i].checked==false)?true:(obj.parentNode.children[1].children[i].checked)
}
}
</script>
<span id="p1"> 
<input type="checkbox" name="checkbox" value="checkbox"  onClick="doCheck(this)">选项
<span id="p2"><br>
&nbsp;<input type="checkbox" name="checkbox2" value="checkbox">子选项1<br>
&nbsp;<input type="checkbox" name="checkbox3" value="checkbox">子选项2<br>
&nbsp;<input type="checkbox" name="checkbox4" value="checkbox">子选项3<br>
&nbsp;<input type="checkbox" name="checkbox5" value="checkbox">子选项4<br>
</span>
</span>

#5


学习
关注

#6


checkbox 是不能变灰的。

郁闷,为什么会没有这个功能呢?

#1


disabled

#2


但是disabled就无法接收onclick事件了.

#3


既然变灰了,还要接收onclick事件?
那干脆不要变灰,在onclick事件发生时,用javascript判断提示...

#4


<script language="JavaScript" type="text/JavaScript">
function doCheck(obj) { 
for(var i=0 ;i<(obj.parentNode.children[1].children.length);i++){
obj.parentNode.children[1].children[i].checked=(obj.parentNode.children[1].children[i].checked==true)?false:(obj.parentNode.children[1].children[i].checked==false)?true:(obj.parentNode.children[1].children[i].checked)
}
}
</script>
<span id="p1"> 
<input type="checkbox" name="checkbox" value="checkbox"  onClick="doCheck(this)">选项
<span id="p2"><br>
&nbsp;<input type="checkbox" name="checkbox2" value="checkbox">子选项1<br>
&nbsp;<input type="checkbox" name="checkbox3" value="checkbox">子选项2<br>
&nbsp;<input type="checkbox" name="checkbox4" value="checkbox">子选项3<br>
&nbsp;<input type="checkbox" name="checkbox5" value="checkbox">子选项4<br>
</span>
</span>

#5


学习
关注

#6


checkbox 是不能变灰的。

郁闷,为什么会没有这个功能呢?