<script>
function CheckChecked(elementObj)
{ var obj = document.getElementsByName("sample");
var j = 0;
for(var i=0;i<obj.length;i++)
{
if (obj[i].checked)
j ++;
}
if(j>3)
{
alert("错误,最多只能选择三项!");
elementObj.checked = false;
}
}
</script>
<TD> <INPUT   type=checkbox   value=2   name=sample onclick="CheckChecked(this);"> </TD> 
<TD> A </TD> 
<TD> <INPUT   type=checkbox   value=2   name=sample onclick="CheckChecked(this);"> </TD> 
<TD> B </TD> 
<TD> <INPUT   type=checkbox   value=2   name=sample onclick="CheckChecked(this);"> </TD> 
<TD> C </TD> 
<TD> <INPUT   type=checkbox   value=2   name=sample onclick="CheckChecked(this);"> </TD> 
<TD> D </TD> 

解决方案 »

  1.   

    结帖吧,测试通过:
    <table border=1><tr><TD> <INPUT type=checkbox value=2 name=sample1 onclick="chk3(this)"> </TD> 
    <TD> A </TD> 
    <TD> <INPUT type=checkbox value=2 name=sample2 onclick="chk3(this)"> </TD> 
    <TD> B </TD> 
    <TD> <INPUT type=checkbox value=2 name=sample3 onclick="chk3(this)"> </TD> 
    <TD> C </TD> 
    <TD> <INPUT type=checkbox value=2 name=sample4 onclick="chk3(this)"> </TD> 
    <TD> D </TD> 
    </tr></table>
    <script>
      function chk3(obj){
        var chk = document.getElementsByTagName('input');
        var cnt = 0;
        for(var i=0;i<chk.length;i++){
          if(chk[i].type == 'checkbox' && chk[i].checked) cnt++;//如果需要,这里可以加上用名字区分,如下面这行
          //if(chk[i].type == 'checkbox' && chk[i].name.indexOf('sample') >= 0 && chk[i].checked) cnt++;
          if(cnt > 3) {
            obj.checked = false;
            alert('超过3个了');
          }
        }
      }
    </script>
      

  2.   

    在checkbox的onclick事件中计算已经选中的条目,进行控制。
    obj.checked == true
      

  3.   


    <script>
    function CheckChecked(elementObj)
    { var obj = document.getElementsByTagName("INPUT");
    var j = 0;
    for(var i=0;i<obj.length;i++)
    {
    if (obj[i].type=="checkbox"&&obj[i].name.indexOf("sample")==0)
    if (obj[i].checked)
    j ++;
    }
    if(j>3)
    {
    alert("错误,最多只能选择三项!");
    elementObj.checked = false;
    }
    }
    </script>
    <TD> <INPUT   type=checkbox   value=2   name=sample1 onclick="CheckChecked(this);"> </TD> 
    <TD> A </TD> 
    <TD> <INPUT   type=checkbox   value=2   name=sample2 onclick="CheckChecked(this);"> </TD> 
    <TD> B </TD> 
    <TD> <INPUT   type=checkbox   value=2   name=sample3 onclick="CheckChecked(this);"> </TD> 
    <TD> C </TD> 
    <TD> <INPUT   type=checkbox   value=2   name=sample4 onclick="CheckChecked(this);"> </TD> 
    <TD> D </TD> 
      

  4.   

    <script>
      function chk3(obj){
        var chk = document.getElementsByTagName('input');
        var cnt = 0;
        for(var i=0;i<chk.length;i++){
          if(chk[i].type == 'checkbox' && chk[i].checked) cnt++;//如果需要,这里可以加上用名字区分,如下面这行
          //if(chk[i].type == 'checkbox' && chk[i].name.indexOf('sample') >= 0 && chk[i].checked) cnt++;
          if(cnt > 3) {
            obj.checked = false;
            alert('超过3个了');
          }
        }
      }
    </script>
    这个是可以,可是怎么出现好多次 "超过3个了"!
    急,咋解决啊?
      

  5.   

    把  if(cnt   >   3)   { 
                    obj.checked   =   false; 
                    alert('超过3个了'); 
                } 移到for外面啊
      

  6.   

    alert('超过3个了'); 
    return;
      

  7.   


    <!DOCTYPE   HTML   PUBLIC   "-//W3C//Dtd   HTML   4.01   Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"> 
    <title> 无标题文档 </title> 
    <script type="text/javascript">
    function Check()
    {
        var flag = false;
        var count = 0;
        var inputs=document.getElementById("tableId").getElementsByTagName("input");
        for(var i=0; i<inputs.length; i++)
        {
            if (inputs[i].checked)
            {
                count++;
            }
        }
        flag = (count==3);
        for(var i=0; i<inputs.length; i++)
        {
            if (!flag)
            {
                inputs[i].disabled = flag;
            }
            else if(!inputs[i].checked)
            {
                inputs[i].disabled = flag;
            }
        }
    }
    </script>
    </head> 
    <body onload="Check()"> 
    <table id="tableId">
    <tr>
    <td> <input   type="checkbox"   value="2"   name="sample1" onclick="Check()"  /> </td> 
    <td> A </td> 
    <td> <input   type="checkbox"   value="2"   name="sample2" onclick="Check()" /> </td> 
    <td> B </td> 
    <td> <input   type="checkbox"   value="2"   name="sample3" onclick="Check()"/> </td> 
    <td> C </td> 
    <td> <input   type="checkbox"   value="2"   name="sample4" onclick="Check()" /> </td> 
    <td> D </td> 
    </tr>
    </table>
    </body> 
    </html>