javascript - 如何阻止随机生成的数字在表单提交时刷新?

标签 javascript html

我创建了一个猜数字的游戏。我当前的问题是,每次我单击猜测按钮时,数字都会自行刷新!我怎样才能阻止这种情况发生?我已经为此付出了一段时间的努力,但没有运气,我对 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/

相关文章:

javascript - JavaScript 中的 For 循环不起作用

html - 如何在 css 背景图像中提供不同大小的 SVG 图形?

javascript - AngularJS - 空 <option> - 其他解决方案不起作用

javascript:Lodash 拒绝查询

javascript - Webdriver.waitUntil 未按预期工作

javascript - 如何在不使用 Rails 助手的情况下实现 'safe' 周期执行器?

javascript - 如何使用别名选择列

javascript - 在客户端上显示 SQL 格式化文本的最佳方式?

php - 使用 PHP 或 HTML 更改 HTTP 请求授权 header

javascript - 使用 Jquery 设置单选按钮值(多于一个单词/包含空格)