日期:2014-05-18  浏览次数:20466 次

怎么用javascript使一个checkbox控制另外2个checkbox的disabled属性
我在pageload里是这样做的,但行不通:
先初始化,chk2.attributes[ "disabled "]   =   "true ";
                    chk3.attributes[ "disabled "]   =   "true ";
再加控制,chk1.attributes[ "onclick "]   =   "document.getElementById( ' "   +   chk1.clientid   +   " ').disabled=this.checked; ";

但不工作,不知道为什么?

------解决方案--------------------
直接用JS控制不行吗?
------解决方案--------------------
chk1.attributes[ "onclick "] = "document.getElementById( ' " + chk1.clientid + " ').disabled=this.checked; ";

你这是控制chk1的呀,改称相应的chk2吧
------解决方案--------------------
可以用ajax,javascript不知行不行
------解决方案--------------------
自己控制自己?chk1????
------解决方案--------------------
chk1.attributes[ "onclick "] = "document.getElementById( ' " + chk1.clientid + " ').disabled=this.checked; ";
------------------------------------
你写错了吧。chk1控制chk1,自己控制自己,肯定有问题
------解决方案--------------------
<script>
function fnc(obj){
var s = document.getElementsByName( "chk ");
if (obj.checked){
for (var i=0;i <s.length;i++){
s[i].disabled = true;
}
}
else{
for (var i=0;i <s.length;i++){
s[i].disabled = false;
}
}
}
</script>
<input type= "checkbox " onclick= "fnc(this) ">
<br>
<input type= "checkbox " name= "chk ">
<input type= "checkbox " name= "chk ">
------解决方案--------------------
chk2,chk3是受chk1控制的吧
你可以这样,将chk2,chk3的name属性设为一样
然后用
function fnc(obj,chkname){
var s = document.getElementsByName(chkname);
if (obj.checked){
for (var i=0;i <s.length;i++){
s[i].disabled = true;
}
}
else{
for (var i=0;i <s.length;i++){
s[i].disabled = false;
}
}
}

调用的时候
fnc(this,你要控制的那一组checkbox的name值)
这样就可以用chk1控制Name值相同的chk2和chk3了

------解决方案--------------------
try:

chk1.attributes[ "onclick "] = "if(!this.ckecked){document.getElementById( ' " + chk2.clientid + " ').removeAttribute( 'disabled ');document.getElementById( ' " + chk3.clientid + " ').removeAttribute( 'disabled ');}else{document.getElementById( ' " + chk2.clientid + " ').disabled = 'true ';document.getElementById( ' " + chk3.clientid + " ').disabled = 'true '; "
------解决方案--------------------
LZ应该用客户端的checkbox来控制,在后台用Request.Form来获取值