我在pageload里是这样做的,但行不通:
先初始化,chk2.attributes["disabled"] = "true";
chk3.attributes["disabled"] = "true";
再加控制,chk1.attributes["onclick"] = "document.getElementById('" + chk1.clientid + "').disabled=this.checked;";但不工作,不知道为什么?
先初始化,chk2.attributes["disabled"] = "true";
chk3.attributes["disabled"] = "true";
再加控制,chk1.attributes["onclick"] = "document.getElementById('" + chk1.clientid + "').disabled=this.checked;";但不工作,不知道为什么?
你跟我写的不一样吗?
顶
------------------------------------
你写错了吧。chk1控制chk1,自己控制自己,肯定有问题
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">
我在pageload里是这样做的,但行不通:
先初始化,chk2.attributes["disabled"] = "true";
chk3.attributes["disabled"] = "true";
再加控制,chk1.attributes["onclick"] = "document.getElementById('" + chk2.clientid + "').disabled=this.checked;" +
"document.getElementById('" + chk3.clientid + "').disabled=this.checked;";现在的问题是,如果我不加这两句chk2.attributes["disabled"] = "true";
chk3.attributes["disabled"] = "true";工作没问题。但我必须首先要初始化chk2和chk3,因为chk1是unchecked。加了这两句,就出错了,不知道为什么?
你可以这样,将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了