<input type="checkbox" name="a_1" value="value_1" onclick="clickOption(this,'b_1')"> A1
<input type="checkbox" name="a_1" value="value_2" onclick="clickOption(this,'b_1')"> A2<input type="checkbox" name="b_1" value="value_1" onclick="clickOption(this,'a_1')"> B1
<input type="checkbox" name="b_1" value="value_2" onclick="clickOption(this,'a_1')"> B2<script>
function clickOption(obj,name)
{
o = document.getElementsByName(name);
for(c=0;c<o.length;c++)
{
if(o[c].value==obj.value) o[c].disabled=obj.checked;
}
}
</script>

解决方案 »

  1.   

    checkbox是服务器端自动生成的,可能有3组或者n组。我的想法是:在checkbox的onclick里传递对象,然后在function里得到该对象的value,然后遍历整个form,找到value和传进来一样的checkbox然后把它disable。但额不会js,哪位大哥帮帮忙,高分悬赏。呵呵。
      

  2.   

    To:wasuka(迦罗娜:潜行的诡计与研究)
    兄弟,你的code可以。但是checkbox必须是两组,可否提高适应性,自动适应N组。就是说添加个C组,function仍然有效。因为我的checkbox组是服务端生成的,组数不确定。
    不好意思,刚开始描述不准确了。sorry
      

  3.   

    这个需求为什么不用多组的radio,如果你非要用checkbox的话稍等下
      

  4.   

    <form name="f">
    <input type="checkbox" name="a_1" value="value_1" onclick="clickOption(this)"> A1
    <input type="checkbox" name="a_1" value="value_2" onclick="clickOption(this)"> A2 <input type="checkbox" name="b_1" value="value_1" onclick="clickOption(this)"> B1
    <input type="checkbox" name="b_1" value="value_2" onclick="clickOption(this)"> B2 <input type="checkbox" name="C_1" value="value_1" onclick="clickOption(this)"> C1
    <input type="checkbox" name="C_1" value="value_2" onclick="clickOption(this)"> C2
    </form><script>
    function clickOption(obj)
    {
    frm = document.f;
    for(c=0;c<frm.length;c++)
    {
    o = frm.elements[c];
    if(o.type=="checkbox"&&o.name!=obj.name&&o.value==obj.value) o.disabled=obj.checked;
    }
    }
    </script>
    测试通过
      

  5.   

    好,我等你 水火<input type="checkbox" name="a_1" value="value_1" onclick="clickOption(this,'a_1')"> A1clickOption的参数只能是checkbox的name
    服务器端是这样的
    <input type="checkbox" name="${checkBoxName}" value="${value}" onclick="clickOption(this,'${checkBoxName}')"> ${labelName}不知道,怎么把当前操作的对象传递到function里。
      

  6.   

    wasuka(迦罗娜:潜行的诡计与研究) 
    你,
    太有才了。
      

  7.   

    <input type="checkbox" name="a_1" value="value_1" onclick="clickOption(this)"> A1<input type="checkbox" name="a_1" value="value_2" onclick="clickOption(this)"> A2 <p>
    组2
    <input type="checkbox" name="b_1" value="value_1" onclick="clickOption(this)"> B1<input type="checkbox" name="b_1" value="value_2" onclick="clickOption(this)"> B1组3
    <input type="checkbox" name="c_1" value="value_1" onclick="clickOption(this)"> C1<input type="checkbox" name="c_1" value="value_2" onclick="clickOption(this)"> C1
    <script language=javascript>
    function clickOption(obj)
    {
    var name1=obj.name
    re=/(_\d+)/
    re.test(name1);
    index=RegExp.$1
    var re=new RegExp(index+"$")
    var ifCheck=(obj.checked)?true:false
    var objs=document.getElementsByTagName("input")
    for(var i=0;i<objs.length;i++)
    {
    if(objs[i].type=="checkbox")
    {
    if(re.test(objs[i].name))
    {
    if(objs[i].name!=name1)
    {
    objs[i].disabled=ifCheck
    }
    }
    }
    }
    }
    </script>
      

  8.   

    function clickOption(obj,name)
    {
    o = document.getElementsByTagName("input");
    for(c=0;c<o.length;c++)
    {
        if(o[c].type="checkbox"){
    if(o[c].value==obj.value){

        if(o[c] != obj){
    o[c].disabled=obj.checked;
    }
    }
    }
    }
    }