我创建了一个猜数字的游戏。我当前的问题是,每次我单击猜测按钮时,数字都会自行刷新!我怎样才能阻止这种情况发生?我已经为此付出了一段时间的努力,但没有运气,我对 javascript 仍然很陌生。如果能够解释我做错了什么,我们将不胜感激,因为目前我不明白为什么会这样做。
<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>
最佳答案
您可以通过使用 Event.preventDefault()
停止表单的 submit
事件来解决此问题:
document.getElementById("sampleform").addEventListener("submit", function(event){
event.preventDefault();
});
如mercator指出,如果您为 action
属性使用空字符串,它将使用文档的地址,并进一步重新加载您的脚本。
关于javascript - 如何阻止随机生成的数字在表单提交时刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32289150/