限制多选框的选中个数,文本框输入数字控制多选框的选中,到了限制该限制的时候,为什么没反应?谢谢!

 <body>

        <form>

          请选择你爱好:<br>

          <input type="checkbox" name="hobby" id="hobby1">  音乐

          <input type="checkbox" name="hobby" id="hobby2">  登山

          <input type="checkbox" name="hobby" id="hobby3">  游泳

          <input type="checkbox" name="hobby" id="hobby4">  阅读

          <input type="checkbox" name="hobby" id="hobby5">  打球

          <input type="checkbox" name="hobby" id="hobby6">  跑步 <br>

          <input type="button" value = "全选" onclick = "checkall();">

          <input type="button" value = "全不选" onclick = "clearall();">

          <p>请输入您要选择爱好的序号,序号为1-6:</p>

          <input id="wb" name="wb" type="text" >

          <input name="ok" type="button" value="确定" onclick = "checkone();">

        </form>

        <script type="text/javascript">

        function checkall(){

            //全选

            var hobby = document.getElementsByTagName("input");

              for(var i=0;i<hobby.length;i++){

              if(hobby[i].type=="checkbox"){      

               hobby[i].checked=true;

                }

              }

        }

        function clearall(){

            // 全不选

            var hobby = document.getElementsByName("hobby");

            for(var i=0;i<hobby.length;i++){

            if(hobby[i].checked==true){

                hobby[i].checked=false;

            }

          }            

        }   

        function checkone(){

            //选一个

            var num=0;

            var j=document.getElementById("wb").value;

            var hobby=document.getElementsByName("hobby");

            if(j<=0||j>6){

                alert("请输入正确的数字!");

            }else

            {

            hobby[j-1].checked=true;

            }

            for(var i=0;i<hobby.length;i++){

             if(hobby[i].checked==true){

                autoCheck("hobby",3);

             }

           }    

        }

        //  限制单个选中的最大个数

        function autoCheck(name,limit){

            var hobby=document.getElementsByName(name);

            function check()

            {

              var num=0;

              for(var i=0;i<hobby.length;i++)

              {

                 if(hobby[i].checked){num++}

                 if(num>limit)

                 {

                    return false;

                 }

              }

              return true;

            }

            function checkedNum(){

               for(var i=0;i<hobby.length;i++){

                if(!check()){

                    alert("只能选择"+limit+"项哦!");

                    hobby[i].checked=false;

                    }

                }

            }

         }

        </script>

    </body>


忆寒QI
浏览 797回答 1
1回答

阿尔法小队长

大致看了下,你的 autoCheck函数根本什么都没做。里面只是声明了一个check 和 一个checkedNum。并没有做任何操作。
打开App,查看更多内容
随时随地看视频慕课网APP