首页 > 解决方案 > 试图使 nr 限制为 1-10,但提示允许用户选择 13

问题描述

所以我正在尝试制作一个刻度系统,其中 ia 用户可以从 1-10 中选择一个数字,并且将从用户选择的数字开始倒计时到 0。问题是当用户在提示中选择数字 12 时,它不允许他/她继续,但是当他们再次尝试时,它允许他们。

html:

 <button onclick=start()>Countdown</button>
   <p id="p">

脚本:

<script>
var ticks;
var mytimer;

function start() {
    ticks = Number(prompt("where do you want to start a countdown, min 1 max 10")) + 1;
    if (ticks > 11) {
        ticks = Number(prompt("Skriv inn på nytt, tallet må være mellom 3-10")) + 1;
    }
    else if (ticks < 1) {
        ticks = Number(prompt("Try again, The number must be between 1-10")) + 1;
    }
    mytimer = setInterval(tick, 1000)

}

  function tick() {
    ticks--;
    document.getElementById("p").innerHTML = "Tick nr. " + ticks + "<br />";

    if (ticks === 1) {
        clearInterval(mytimer);
        document.write("Done!");
    }
}
  </script>

标签: javascriptif-statement

解决方案


直到你没有得到 1 - 10 之间的任何数字,你可以尝试再次调用相同的方法,如下所示:

<script>
var ticks;
var mytimer;

function start() {
    ticks = Number(prompt("where do you want to start a countdown, min 1 max 10")) + 1;
    if (ticks > 10) {
        start();
    }
    else if (ticks < 1) {
        start();
    }
    mytimer = setInterval(tick, 1000)

}

function tick() {
    ticks--;
    document.getElementById("p").innerHTML = "Tick nr. " + ticks + "<br />";

    if (ticks === 1) {
        clearInterval(mytimer);
        document.write("Done!");
    }
}
</script>

推荐阅读