How to check if input is a number and call a function accordingly?

前端 未结 3 1049
不知归路
不知归路 2021-01-24 08:30

I have my code below..I need to modify it so that the input is checked if it is number.If its not a number, then a message has to be displayed as follows \" please enter only no

相关标签:
3条回答
  • 2021-01-24 09:21

    have you tried "typeof"?

    if ( typeof entered_num  === "number" ) {..} 
    else { //not a number }
    

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

    0 讨论(0)
  • 2021-01-24 09:34

    You may try like this:

    if (!isNaN(parseFloat(obj)) && isFinite(obj);) 
      {
        compare();
      }
     else
      {
    
        alert("Please enter only numbers");
        return false;
      }
    
    0 讨论(0)
  • 2021-01-24 09:35

    parseInt has to be used with both entered_num and generated_num, right now you are doing only for one.

    <head>
    <title>Guessing Game</title>
     <meta charset = "utf-8">
    <script>
    <!--
    
    var num_guess=0;
    
    function compare()
        {
     var generated_num = parseInt(document.getElementById( "target" ).value, 10);
     var entered_num = parseInt(document.getElementById( "userguess" ).value, 10);
    
    
        if ( entered_num ) > generated_num)
           window.alert("Too high. Try again!");
      else if (entered_num < generated_num)
         window.alert("Too low. Try again!");
     else
      {
         window.alert("Congratulations!You guessed the number!");
      if (num_guess < 10 )
         window.alert( "Either you know the secret or"
     + " you got lucky!");
          if (num_guess == 10 )
       window.alert( "Ahah! You know the secret!" );
         if (num_guess  > 10 )
       window.alert(
        "You should be able to do better!" );
        guess.userguess.value ="";
        window.status= "Done";
    
    
       random();
    
       } // end else
       num_guess++;
          } // end function compare
    
        function random() // function to generate a random no between 1 and 1000
        {
        document.getElementById( "target" ).value =
       Math.floor( 1 + Math.random() * 1000 );
       } // end function random
        // -->
      </script>
        </head>
    
       <body onload = "random()">
       <form id = "guess" action = "">
       <div>
       Guess a number between 1 and 1000:
      <input type = "text" id = "userguess" /><br />
        <input type = "button" value = "Guess"
       onclick = "compare()" />
        <input type = "hidden" id = "target" value = "0" />
    
       </div>
         </form>
    
    0 讨论(0)
提交回复
热议问题