因此,我正在尝试制作一个滴答系统,用户可以从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>
发布于 2018-11-22 15:44:18
直到你没有得到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>
发布于 2018-11-22 15:57:27
解决方案很简单。当您第一次输入大于11的值时,if (ticks > 11) {
语句会捕获该值,然后显示新的提示。如果再次输入大于11的值,则没有If语句来捕获它。如果在输入错误值时再次运行start
函数,则可以解决此问题。
https://stackoverflow.com/questions/53425980
复制相似问题