问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

JavaScript——为什么在文字输入框内输入符合要求的数字会有alert?该怎么修正

    <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(i=0; i<hobby.length; i++)
            {
                hobby[i].checked=true;
            }
          // 任务1 
           
        }
        function clearall(){
            var hobby = document.getElementsByName("hobby");
            for(i=0; i<hobby.length; i++)
            {
                hobby[i].checked=false;
            }
         // 任务2    
            
        }
        function checkone(){
            var j=document.getElementById("wb").value;
            function isInteger(obj) 
            {
                return Math.floor(obj)===obj;
            }
            var t=isInteger(j);
            if(t=false)
            {
                alert("请输入1和6之间的整数!");
            }else if(t>6 || t<1)
            {
                alert("请输入1和6之间的整数!")
            }else{
                hobby[t].checked=true;
            }
         // 任务3
        
        }
        
        </script>
    </body>


提问者:明图 2017-02-15 22:15

个回答

  • qq_佳佳_22
    2017-02-16 18:17:55

          function checkone(){

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

                function isInteger(obj) 

                {

                    return Math.floor(obj)===obj;

                }

                var t=isInteger(j);

                if(t=false)

                {

                    alert("请输入1和6之间的整数!");

                }

                else{

                            if(j>6||j<1)

                            {    alert("请输入1和6之间的整数!")

                            }

                    else

                        {

                            hobby[j-1].checked=true;

                        }

                    }

             // 任务3

             

            }

    程序有问题,t只是false或者true,不是一个值,而且数组的索引值从0开始,j必须减一。

  • 慢l慢
    2017-02-16 17:09:34

    或许=获取   刚刚打错字了

  • 慢l慢
    2017-02-16 17:08:26

    var j=document.getElementById("wb").value;   或许的value是字符串,需要用parseInt()转为数字类型;

      

    以下:

          function checkone(){

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

                var t=parseInt(document.getElementById("wb").value);

                if(t<=6 && t>=1)

                {

                    hobby[(t-1)].checked=true;

                }else

                {

                    alert("请输入1和6之间的整数!");

                }

             // 任务3        

            }