Javascript 如何使文档等待指定的输入值?
我正在写一个数字猜谜游戏。每次我运行文档时,它都会自动转到外部else语句,我知道原因,但我不知道如何让它等待文本框的输入值。我想通过按submit将“guess”=设置为文本框的值,然后输入if语句。此时,它会自动设置为null并导致错误。这是代码Javascript 如何使文档等待指定的输入值?,javascript,html,input,textbox,Javascript,Html,Input,Textbox,我正在写一个数字猜谜游戏。每次我运行文档时,它都会自动转到外部else语句,我知道原因,但我不知道如何让它等待文本框的输入值。我想通过按submit将“guess”=设置为文本框的值,然后输入if语句。此时,它会自动设置为null并导致错误。这是代码 <head> <title>Guessing Game</title> </head> <body> <h1>Number Guessing
<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'> ");
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在他的最后一条评论中确认了我的上述评论,正如你或多或少指出的,你可以做一个小的更新来涵盖这一点