其中n,m,k都是已知的,这个是确定的。但不是固定的值,每次都会变化。能不能给我代码?

解决方案 »

  1.   

    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <br>
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <script>
    function ch(obj,k)
    {
    x=1
    obj.checked=obj.checked
    for(i=0;i<document.getElementsByName(obj.name).length;i++)
    {
    if(document.getElementsByName(obj.name)[i].checked) x++
    }
    if(x>k)
    {
    for(i=0;i<document.getElementsByName(obj.name).length;i++)
    {
    if(!document.getElementsByName(obj.name)[i].checked) document.getElementsByName(obj.name)[i].disabled=true
    }
    }
    else
    for(i=0;i<document.getElementsByName(obj.name).length;i++)
    {
    if(!document.getElementsByName(obj.name)[i].checked) document.getElementsByName(obj.name)[i].disabled=false
    }}
    </script>
      

  2.   

    简化版,分组,每组k可以设定<input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <input name=a1 type=checkbox onclick="ch(this,4)">1
    <br>
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <input name=a2 type=checkbox onclick="ch(this,2)">2
    <script>
    function ch(obj,k)
    {
    x=1
    obj.checked=obj.checked
    for(i=0;i<document.getElementsByName(obj.name).length;i++)
    {
    if(document.getElementsByName(obj.name)[i].checked) x++
    }
    for(i=0;i<document.getElementsByName(obj.name).length;i++)
    if(!document.getElementsByName(obj.name)[i].checked) document.getElementsByName(obj.name)[i].disabled=(x>k)}
    </script>
      

  3.   

    孟子大哥,如果我想让所有选项的name都是同一个变量,又该怎么做啊?
      

  4.   

    让所有选项的name都是同一个变量,那你就不能分组了,如果分组,那样处理会比较麻烦,费力不讨好
      

  5.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="pragma" content="no-cache" />
    <style type="text/css">
    <!--
    -->
    </style>
    <script language="JavaScript">
    <!--
    function CheckIt(){
    var grp=document.all[window.event.srcElement.id];
    if(typeof(grp.length)!='number') return;
    var iTmp=0
    for(var iCnt=0;iCnt<grp.length;iCnt++)
    if (grp[iCnt].checked) iTmp++;
    if(iTmp<3){
    for(iCnt=0;iCnt<grp.length;iCnt++)
    grp[iCnt].disabled=false;
    return;}
    for(iCnt=0;iCnt<grp.length;iCnt++)
    if(!grp[iCnt].checked)
    grp[iCnt].disabled=true;
    }
    -->
    </script>
    <title></title>
    </head>
    <body>
    每组只能选三个
    <div style="border:solid 1px black;padding:10px;margin:3px;">
    <input type="checkbox" id="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" id="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" id="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" id="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" id="chk0" onclick="CheckIt();" />chk0<br /><br />
    </div>
    <div style="border:solid 1px black;padding:10px;margin:3px;">
    <input type="checkbox" id="chk2" onclick="CheckIt();" />chk2<br />
    <input type="checkbox" id="chk2" onclick="CheckIt();" />chk2<br />
    <input type="checkbox" id="chk2" onclick="CheckIt();" />chk2<br />
    <input type="checkbox" id="chk2" onclick="CheckIt();" />chk2<br />
    </div>
    </body>
    </html>
      

  6.   

    可是如果name不是同一个变量的话,提交的时候也会有麻烦,因为组数是动态的,也就是说name的个数是动态的,这样变量传递也不好控制啊
      

  7.   

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta http-equiv="pragma" content="no-cache" />
    <style type="text/css">
    <!--
    -->
    </style>
    <script language="JavaScript">
    <!--
    function CheckIt(){
    var grp=new Array();
    var grpTemp=window.event.srcElement.parentElement.childNodes;
    var iTmp=0;
    for(var iCnt=0;iCnt<grpTemp.length;iCnt++){
    if(typeof(grpTemp[iCnt].tagName)=='undefined') continue;
    if(grpTemp[iCnt].tagName.toLowerCase()=='input' && grpTemp[iCnt].getAttribute("type").toLowerCase()=='checkbox'){
    grp[iTmp]=grpTemp[iCnt];
    iTmp++;
    }
    }
    var iTmp=0;
    for(var iCnt=0;iCnt<grp.length;iCnt++)
    if (grp[iCnt].checked) iTmp++;
    if(iTmp<3){
    for(iCnt=0;iCnt<grp.length;iCnt++)
    grp[iCnt].disabled=false;
    return;}
    for(iCnt=0;iCnt<grp.length;iCnt++)
    if(!grp[iCnt].checked)
    grp[iCnt].disabled=true;
    }
    -->
    </script>
    <title></title>
    </head>
    <body>
    每组只能选三个
    <div style="border:solid 1px black;padding:10px;margin:3px;">
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br /><br />
    </div>
    <div style="border:solid 1px black;padding:10px;margin:3px;">
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    <input type="checkbox" name="chk0" onclick="CheckIt();" />chk0<br />
    </div>
    </body>
    </html>
      

  8.   

    to:eglic(圪圪)
    每组选几个可不可以不一样?to:孟子 大哥
    可是如果name不是同一个变量的话,提交的时候也会有麻烦,因为组数是动态的,也就是说name的个数是动态的,这样变量传递也不好控制啊
      

  9.   

    可以在每组的DIV里面加一个属性 maxSelect="3"
    在上边比较iTmp的时候
    if(iTmp<3){改为if(iTmp<parseInt(window.event.srcElement.parentElement.getAttribute("maxSelect"))){这样就可以了
      

  10.   

    多谢eglic(圪圪),问题终于解决!