Я создал игру, которая догадывается о числе. Моя текущая проблема заключается в том, что каждый раз, когда я нажимаю кнопку «Угадать», номер обновляется! Как я могу остановить это? Я занимаюсь этим какое-то время, но мне не повезло, я все еще новичок в javascript. Ответы с объяснением того, что я сделал неправильно, были бы очень благодарны, потому что на данный момент я не понимаю, почему это делается.Как остановить произвольно сгенерированное число от обновления на форме submit?
<form id='sampleform' method='get' action=''>
Guess: <input type='text' name='guess' id = 'guess'/>
<button id ='b1' name='Submit' value='Submit'/>
</form>
<script>
document.getElementById("b1").addEventListener("click", checkForm);
x = Math.floor(Math.random()*99)
function randomNumber(){
return x;
}
function checkForm(){
var number = document.getElementById('guess').value;
if (number == null || number == "" || isNaN(number) || number < 0 || number > 99){
alert("Invalid input");
return false;
}
else if (number == x)
{
alert("You're correct!");
document.getElementById('b1').disabled = true;
return true;
}
else{
alert("Wrong! Try again.")
}
}
randomNumber();
console.log(x); //checks value for testing
</script>
что вы на самом деле хотите? (генерировать случайное число только один раз или что-то еще) –
Это потому, что, когда вы отправляете форму, браузер загружает страницу, указанную атрибутом формы «действие». Это одна и та же страница (поскольку она пуста), поэтому она обновляется, что снова запускает ваш скрипт. Вы можете использовать ajax, перейти на другую страницу или передать параметр запроса, который говорит вам, что это перезагрузка. – sje397
Когда вы отправляете форму, страница перезагружается. Поскольку вы, кажется, не используете форму ни для чего, вы можете ее удалить. –