Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使文档等待指定的输入值?_Javascript_Html_Input_Textbox - Fatal编程技术网

Javascript 如何使文档等待指定的输入值?

Javascript 如何使文档等待指定的输入值?,javascript,html,input,textbox,Javascript,Html,Input,Textbox,我正在写一个数字猜谜游戏。每次我运行文档时,它都会自动转到外部else语句,我知道原因,但我不知道如何让它等待文本框的输入值。我想通过按submit将“guess”=设置为文本框的值,然后输入if语句。此时,它会自动设置为null并导致错误。这是代码 <head> <title>Guessing Game</title> </head> <body> <h1>Number Guessing

我正在写一个数字猜谜游戏。每次我运行文档时,它都会自动转到外部else语句,我知道原因,但我不知道如何让它等待文本框的输入值。我想通过按submit将“guess”=设置为文本框的值,然后输入if语句。此时,它会自动设置为null并导致错误。这是代码

<head>
        <title>Guessing Game</title>
</head>

<body>
        <h1>Number Guessing Game</h1><br>
        <button onclick = "search(1,100)">Press to play!</button>
</body>

<script type="text/javascript">

    var counter = 0;
    var randomNumber = Math.floor(Math.random()*100+1);
    function search(first, last){
                document.open();
                document.write("<h1>Number Guessing Game</h1><br>");
                document.write("<input id = 'guessBox' type = 'text'>&nbsp;");
                document.write("<input type = 'submit' id = 'submit' value = 'Submit'><br>");
                document.write("<h2>Numbers Left</h2>");
                for(var i = first; i <= last; i++){
                    document.write(i + " ");
                }
                document.write("<br><br><h3>Number of tries: " + counter + "</h3>");
                document.close();
                var guess = document.getElementById('guessBox').value;
                //var guess = prompt("Guess!");
                myguess = parseInt(guess);
        if(myguess <= last && myguess >= first && cont == true){
            if(myguess == randomNumber){
                counter++;
                if(counter <=3){
                alert("WOW, that was amazingly quick! You found it in " + counter + " tries.");
                }
                else if(counter < 6 && counter >= 4){
                    alert("Not bad! You found it in " + counter + " tries.");
                }
                else if(counter < 10 && counter >= 6){
                    alert("Ouch! You found it in " + counter + " tries.");
                }
                else{
                    alert("Having a bad day aren't you? You found it in "+ counter + " tries");
                }

            }
            else if(myguess < randomNumber){
                first = myguess+1;
                alert("Try again! The number is higher.");
                counter++;
                search(first, last);
            }
            else{
                last = myguess-1;
                alert("Try again! The number is lower.");
                counter++;
                search(first, last);        
            }
        }
        else{
            alert("Invalid Number, try again.");
            search(first, last);
        }
    }

</script>

猜谜游戏
猜数字游戏
按播放! var计数器=0; var randomNumber=Math.floor(Math.random()*100+1); 函数搜索(第一个、最后一个){ document.open(); 文档。写(“猜数字游戏
”; 文件。填写(“”); 文件。写(“
”); 文件。填写(“左数”); 对于(变量i=第一;i=6){ 警报(“哎哟!你在“+计数器+”尝试中找到了它。”); } 否则{ 警惕(“你今天过得不好,是吗?你在“+计数器+”中找到的”); } } else if(myguess<随机数){ 第一个=myguess+1; 警报(“重试!数字更高。”); 计数器++; 搜索(第一,最后); } 否则{ last=myguess-1; 警报(“重试!数字更低。”); 计数器++; 搜索(第一,最后); } } 否则{ 警报(“无效号码,请重试”); 搜索(第一,最后); } }
您是否尝试禁用按钮,然后在文本框中添加onChange事件,以便在获得所需输入后启用按钮?您需要将ID或名称值添加到按钮,以便可以访问它?要添加@LGSon添加的内容:

如果(myguess=first&&cont==true){,则检查变量cont,我在代码中找不到该变量,因此如果未在某个地方声明和设置它,则代码将始终采用外部路径


其次,您需要将搜索功能分为两个功能,一个生成输入,另一个在有人输入值时运行(可以通过按键或按钮启动)

您是否尝试禁用按钮,然后在文本框中添加onChange事件,以便在获得所需输入后启用按钮?您需要在按钮中添加ID或名称值,以便访问按钮?以及添加@LGSon添加的内容:

如果(myguess=first&&cont==true){,则检查变量cont,我在代码中找不到该变量,因此如果未在某个地方声明和设置它,则代码将始终采用外部路径



其次,您需要将搜索功能分为两个功能,一个生成输入,另一个在有人输入值时运行(可以通过按键或按钮启动)

在同一个文档上使用document.write是个坏主意。永远不要使用document.writeAppricate建议,但这并不能真正回答问题。在这一行,
if(myguess=first&&cont==true){
,您检查变量
cont
,我在您的代码中找不到该变量,因此如果它没有声明并设置在某个位置,您的代码将始终使用外部路由。其次,您需要将
搜索
函数拆分为两个函数,一个生成输入,另一个在有人输入值时运行(可以通过按键或按钮触发)在同一文档上使用document.write是个坏主意。永远不要使用document.writeAppricate建议,但这并没有真正回答问题。在这一行,
if(myguess=first&&cont==true){
,您检查变量
cont
,我在您的代码中找不到该变量,因此如果它没有声明并设置在某个位置,您的代码将始终使用外部路由。其次,您需要将
搜索
函数拆分为两个函数,一个生成输入,另一个在有人输入值时运行(可通过按键或按钮触发)整个搜索方法甚至在有机会输入文本之前都会自动调用。将javascript封装在一个函数中,然后从单击按钮事件调用该函数。不过,您已经完成了一半,请使用我的评论的总和更新您的答案,您将得到我的答案upvote@LGSon在这个问题上?是的,为什么不呢。我的上述评论得到了证实OP在他的最后一条评论中提到了这一点,正如你或多或少指出的那样,你可以做一个小的更新,覆盖整个搜索方法自动调用的内容,甚至在有机会输入文本之前。将你的javascript封装在一个函数中,然后从“点击按钮”事件调用该函数。不过,你已经做了一半,请更新你的回答我的全部评论,你就会得到我的答案upvote@LGSon关于这个问题?是的,为什么不呢。OP在他的最后一条评论中确认了我的上述评论,正如你或多或少指出的,你可以做一个小的更新来涵盖这一点