You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

猜数字游戏中answer变量触发check()时意外重复赋值求助

问题原因

点击表单的submit按钮时,浏览器会触发表单默认提交行为,导致页面刷新。页面刷新后,<script>标签内的代码会重新执行,answer变量会被重新生成新的随机数,这就是之前的正确答案再次提交时无法匹配的核心原因。

修复方案

有两种简单的解决方式:

方式一:将提交按钮改为普通按钮

把原来的submit类型输入框改成button类型,点击时不会触发表单提交刷新页面:

<input type="button" onclick="check()" value="EEEE"/>

或者使用<button>标签实现:

<button onclick="check()">EEEE</button>

方式二:阻止表单的默认提交行为

修改check函数,添加阻止默认行为的逻辑,同时在onclick中传递事件对象:

  1. 调整按钮的onclick属性:
<input type="submit" onclick="check(event)" value="EEEE"/>
  1. 更新check函数:
function check(event){
    event.preventDefault(); // 阻止表单默认提交动作,避免页面刷新
    var guess = document.getElementById("guess").value;
    var guessInt = parseInt(guess);
    
    if (guessInt == answer) {
        alert("you got it!")
        // 可选:猜对后生成新答案并更新分数
        answer = Math.floor(Math.random()*100);
        score++;
        document.getElementById("score").innerHTML = score;
    }
    else if (guessInt > answer) {
        alert("too high")
    }
    else if (guessInt < answer) {
        alert("too low")
    }
}

注:原代码中score变量会随页面刷新重置,使用上述修复方式后页面不再刷新,score可保持累加,建议在猜对时同步更新分数显示。

内容的提问来源于stack exchange,提问作者Killercarrot102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:45:44