【问题标题】:javascript prompt number and continue prompting if answer is wrongjavascript提示号码,如果回答错误继续提示
【发布时间】:2013-02-09 10:13:42
【问题描述】:

我需要提示访问者输入 1 到 100 之间的整数并继续提示直到输入有效数字。

这是我所拥有的:

<script>

var number = parseInt(prompt("Please enter a number from 1 to 100", ""));

if (number < 100) {
    document.write("Your number (" + number + ") is matches requirements", "");
} else if (isNaN(number)) {
    parseInt(prompt("It is not a number. Please enter a number from 1 to 100", ""));
} else {
    parseInt(prompt("Your number (" + number + ") is above 100. Please enter a number from 1 to 100", ""));
}

</script>

它可以识别号码,但在号码错误时无法重新询问。你能帮我解释一下你添加了什么吗?

非常感谢。

【问题讨论】:

    标签: javascript prompt


    【解决方案1】:

    这样的事情应该可以解决问题:

    do{
        var selection = parseInt(window.prompt("Please enter a number from 1 to 100", ""), 10);
    }while(isNaN(selection) || selection > 100 || selection < 1);
    

    【讨论】:

    • 向 parseInt 函数添加一个 10 的基数参数,你就可以开始了 :)
    【解决方案2】:

    这是一种递归方法:

    var number = (function ask() {
      var n = prompt('Number from 1 to 100:');
      return isNaN(n) || +n > 100 || +n < 1 ? ask() : n;
    }());
    

    【讨论】:

    【解决方案3】:

    另一种方法:

    <html>
        <head> </head>
        <body onload="promptForNumber();">
    
    
    <script>
        function promptForNumber( text)
    {
        if(text == '' ){
         text = "Please enter a number from 1 to 100";   
        }
        var number = parseInt(window.prompt(text, ""));
        checkNumber(number);
    
    }
    function checkNumber(number){
    
        if (number <= 100 && number >= 1) {
        document.write("Your number (" + number + ")  matches requirements", "");
    } else if (isNaN(number)) {
        promptForNumber("It is not a number. Please enter a number from 1 to 100", "");
    } else {
        promptForNumber("Your number (" + number + ") is not between 1 and 100", "");
    }
    
    }
    
    
    </script>
    
        </body>
    </html>
    

    【讨论】:

      【解决方案4】:
       function myFunction(id) {
      
              let person = prompt("Please Enter Your Quotation");
              if (person != null) {
                  if(person>=0||person<0){
                      alert("max");
                  }else{
                  alert('Only Number is Allowed');
                  myFunction(id)
                  }
              }
          }
      

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2015-11-29
      • 2020-02-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多