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

为什么输入数字不在范围就会弹框六次呢?

function checkone(){

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

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

         // 任务3

            if(j<7&&j>0)

            {

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

                {

                    if((n+1)==j)

                    {

                        hobby[n].checked=false;

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

                    }

                    

                }

            else

            {

                alert("当前输入有误!请重新输入...")

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

            }

            }

        }

有同学可以帮忙看看吗?谢谢了

提问者:shan330 2017-03-12 15:00

个回答

  • 一颗心的星空
    2017-03-13 14:53:24
    已采纳

    同学先不提代码结果,光说你的语句就有问题啊。。。我把你代码内容清除,光剩一个语句结构,你看下是不是有问题

        function checkone()

        {

            if()

            {

                    for(){ if(){} }

                else{}

            }

        }

    你的else没有对应if。。。

    你提供的代码是运行不了的,我试了。你说的弹框6次,我初步判断是因为你现在的代码运行不了,所以页面暂时还停留在你上一次运行成功的代码,这个代码停留的问题我也遇到过,有点印象。


    修改后格式应该是下面这样,我运行了下,点一次‘确定’只会弹框一次。

    另外把false改成true,点击确定是选中框而不是取消框选。感觉代码还可以更简洁一点

        function checkone()

        {

            if()

            {

                    for(){ if(){} }

            }

            else{}

        }

    一起加油,哈哈。我有时候不会就点开答案。现在看到你这自己辛苦敲出来的代码,挺惭愧的,哈哈