为了账号安全,请及时绑定邮箱和手机立即绑定

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>


正在回答

3 回答

      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必须减一。

0 回复 有任何疑惑可以回复我~

或许=获取   刚刚打错字了

0 回复 有任何疑惑可以回复我~

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        

        }


0 回复 有任何疑惑可以回复我~
#1

明图 提问者

你试试,只能输入数字,但是没反应
2017-02-16 回复 有任何疑惑可以回复我~
#2

慢l慢 回复 明图 提问者

我试过代码啊 能正常操作啊
2017-02-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信