无法将文本框输入转换为整数?

发布于 2025-01-17 03:53:38 字数 1838 浏览 2 评论 0原文

我正在尝试创建一个程序,该程序接受用户输入的数字并将其与随机生成的数字进行比较,直到用户猜出正确的数字。我遇到了一个问题,当我调试程序时,我的用户输入号码显示为未定义,但我使用了 parseInt 并解决了该问题。现在看来这是我的 if else 语句的问题,因为当我对代码运行调试时,我现在得到了正确的使用输入编号,但现在当我运行它时,即使我输入 1000 作为我的猜测,它总是给出我“你的猜测太低了!尝试更大的数字。”

var guessNum;//user input guess


function randomNumber(guessNum1)
{

    guessNum = document.getElementById( "numInput" ).value;//getting value of user input
    var guessNum1 = parseInt(guessNum);//change user input to integer
    
    var num = Math.floor( 1 + Math.random() * 1000 ); //random number generator 
    
    if (num == guessNum1)
    {
        messages.innerHTML = "Congratulations! You guessed the number!";
    
    }
        else if (num < guessNum1)
        {
            messages.innerHTML = "Your guess is too high! Try a lower number.";
        }
            else (num > guessNum1)
            {
                messages.innerHTML = "Your guess is too low! Try a higher number.";
            }
    
    guessNum = document.getElementById( "numInput" ).value = "";//clears the textbox on screen
            
}

function start()
{
    var guessButton = document.getElementById( "guess" );//variable for clicking button
    guessButton.addEventListener( "click", randomNumber, false);
    //event listener for button that starts randomNumber function
    messages = document.getElementById( "messages" );
}

window.addEventListener( "load", start, false);//starts start function on screen load
<h1>Guess the Number!</h1>

<h3>Enter in a number between 1-1000 in the textbox and hit submit </h3>

<form action = "#">
    <input id= "numInput" type="text" >
    <input id= "guess" type="button" value="Guess" > 
</form>

<p id= "messages">Enter a number to start the game </p>

I am trying to create a program that takes a user input number and compares it to a randomly generated number until the user guesses the correct number. I was having a problem where my user input number is showing up undefined while I am debugging my program but I used parseInt and fixed the issue. Now it seems it is an issue with my if else statement because I get the right use input number back now when I run a debug on my code but it now when I run it, even when I enter 1000 as my guess, it always gives me "Your guess is too low! Try a higher number."

var guessNum;//user input guess


function randomNumber(guessNum1)
{

    guessNum = document.getElementById( "numInput" ).value;//getting value of user input
    var guessNum1 = parseInt(guessNum);//change user input to integer
    
    var num = Math.floor( 1 + Math.random() * 1000 ); //random number generator 
    
    if (num == guessNum1)
    {
        messages.innerHTML = "Congratulations! You guessed the number!";
    
    }
        else if (num < guessNum1)
        {
            messages.innerHTML = "Your guess is too high! Try a lower number.";
        }
            else (num > guessNum1)
            {
                messages.innerHTML = "Your guess is too low! Try a higher number.";
            }
    
    guessNum = document.getElementById( "numInput" ).value = "";//clears the textbox on screen
            
}

function start()
{
    var guessButton = document.getElementById( "guess" );//variable for clicking button
    guessButton.addEventListener( "click", randomNumber, false);
    //event listener for button that starts randomNumber function
    messages = document.getElementById( "messages" );
}

window.addEventListener( "load", start, false);//starts start function on screen load
<h1>Guess the Number!</h1>

<h3>Enter in a number between 1-1000 in the textbox and hit submit </h3>

<form action = "#">
    <input id= "numInput" type="text" >
    <input id= "guess" type="button" value="Guess" > 
</form>

<p id= "messages">Enter a number to start the game </p>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文