пытается сделать ограничение № 1-10, но подсказка позволяет пользователям выбирать 13 - PullRequest
0 голосов
/ 22 ноября 2018

, поэтому я пытаюсь создать систему тиков, в которой пользователь может выбрать число от 1 до 10, и начнется обратный отсчет от числа, которое пользователь выбрал до 0. Проблема в том, что когда пользователь выбирает число 12в ответ, он не позволяет ему / ей продолжать, но при повторной попытке это позволяет им.

html:

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

scirpt:

<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>

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Решение простое.Когда вы в первый раз вводите значение больше 11 if (ticks > 11) {, оператор ловит его, а затем показывает новое приглашение.Если вы снова введете значение больше 11, то оператор if не сможет его перехватить.Если вы снова запустите функцию start при вводе неверного значения, вы можете исправить эту проблему.

0 голосов
/ 22 ноября 2018

Пока вы не наберете номер от 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...