<script>
var max =3function chk(obj1){
var obj = document.getElementsByName(obj1.name);
var j = 0;
if(obj1.checked)
{
j++;
if(j==max)
{
for (i = 0; i < obj.length; i++)
{
if (obj[i].checked==false) ; 
{
obj[i].disabled = ture ;
}
}
}
}
else
{
j--;
for(var i=0;i<obj.length;i++)
{
if(obj[i].disabled==true)
{
obj[i].disabled=false;

}
}
}
</script>
<INPUT type="checkbox" name="uid1" value="1" onClick="chk(this);">
<INPUT type="checkbox" name="uid1" value="2" onClick="chk(this);">
<INPUT type="checkbox" name="uid1" value="3" onClick="chk(this);">
<INPUT type="checkbox" name="uid1" value="4" onClick="chk(this);"> 
<INPUT type="checkbox" name="uid1" value="5" onClick="chk(this);">

解决方案 »

  1.   

    1、var j=0放在函数外面。否则每次调用函数j都被初始化为0,永远不可能等于3。2、if (obj[i].checked==false) ; 这里的;号去掉,否则;就相当于一个空语句,即条件成立就什么也不做,而不是执行下面的obj[i].disabled = true ;3、obj[i].disabled = ture ; 这一句ture改为true即:
    <script>
    var max =3
    var j = 0;
    function chk(obj1){
      var obj = document.getElementsByName(obj1.name);
      if(obj1.checked){
        j++;
        if(j==max){
          for (i = 0; i < obj.length; i++){
            if(obj[i].checked==false){
              obj[i].disabled=true;
            }
          }
        }
      }
      else{
        j--;
        for(var i=0;i<obj.length;i++){
          if(obj[i].disabled==true){
            obj[i].disabled=false;
          } 
        }
      }
    }
    </script>
    <INPUT type="checkbox" name="uid1" value="1" onClick="chk(this);">
    <INPUT type="checkbox" name="uid1" value="2" onClick="chk(this);">
    <INPUT type="checkbox" name="uid1" value="3" onClick="chk(this);">
    <INPUT type="checkbox" name="uid1" value="4" onClick="chk(this);"> 
    <INPUT type="checkbox" name="uid1" value="5" onClick="chk(this);">
      

  2.   

    ls这么强啊,能看懂lz的意思-_-