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

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

shan330

2017-03-12 15:00

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="";

            }

            }

        }

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

写回答 关注

1回答

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

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

        function checkone()

        {

            if()

            {

                    for(){ if(){} }

                else{}

            }

        }

    你的else没有对应if。。。

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


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

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

        function checkone()

        {

            if()

            {

                    for(){ if(){} }

            }

            else{}

        }

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

    shan33...

    其实我也不怎么会呢,有时也综合评论里面其他同学的代码来看,有时会在问答区找是不是也有跟我出现一样情况的然后来重新理解它

    2017-03-13 16:18:43

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题