【问题标题】:How to create while loop with alert and prompt to avoid empty input?如何创建带有警报和提示的while循环以避免空输入?
【发布时间】:2016-10-09 01:46:19
【问题描述】:

我想创建一个 while 循环以避免空输入。这是我的代码,我希望它循环,以便用户获得相同的警报,然后提示窗口,直到他/她写下一个名称/用户名。关于我做错了什么以及如何解决它的任何想法?

<script type="text/javascript">
confirm("Wanna play?");
var name = prompt("What's your name?");
while (name.length == 0) {
    alert("Please enter your name!");
    prompt("What's your name?");
}
else {
    document.write("Welcome to my game " + name + "!" + "<br>");
}
</script>

【问题讨论】:

    标签: javascript loops while-loop


    【解决方案1】:

    @Renan 建议正确。不过,如果您需要当前代码工作,您可以试试这个:

    <script type="text/javascript">
    confirm("Wanna play?");
    var name = prompt("What's your name?");
    while (name.length == 0) {
        alert("Please enter your name!");
        name = prompt("What's your name?");
    }
    document.write("Welcome to my game " + name + "!" + "<br>");
    </script>
    

    您的代码/逻辑中有一些错误:

    1. 为什么elsewhile 之后? else 仅与 if 子句一起使用。
    2. 您在while 循环中询问名称,但没有将其分配给name 变量。如果不分配给namename 变量将如何更新并导致while 循环退出?

    【讨论】:

    • 我只会在if 中使用而不是一会儿。在else 块中,我将拥有document.write("GTFO then.")
    • @Renan 如果名字反复为空,你会用函数调用吗?
    • 非常感谢!这正是我想做的!
    • @Mike 不。在我将用户重定向到其他地方之前,我只给用户一次机会获得他们的名字。
    • @Renan 好的。但是 OP 可能想为他需要用户先输入名称的东西创建一个演示,然后才能继续流程。
    【解决方案2】:

    切勿在您的网页中滥用promptalertconfirm

    我可以写很多关于这个的,但我会在这里留下这张图片。

    用户可以轻松地让您通过对话来吸引他们的注意力,因此您为此付出的任何额外努力都是浪费的。

    【讨论】:

    • 会记住这一点,但我目前正在学习如何使用这些方法!逐章学习如何编写代码。
    • @AnnaBannann 没关系,我看到很多有经验的程序员也不知道这一点。如果您刚刚开始,现在可能有点多,但您可能想看看at this other question。还有其他方法可以强制用户向您的页面提供有意义的输入。
    【解决方案3】:

    看看这是否符合您的要求!

    confirm("Wanna play?");
    var name = prompt("What's your name?");
    while (name.length == 0) {
        name = prompt("Please, insert a name to proceed!");
    }
    document.write("Welcome to my game " + name + "!" + "<br>");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 2018-03-23
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多