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

求助:实现无刷新表单提交后更新乘法答题系统的correntAns变量

乘法答题应用变量更新问题解决

问题分析

你的代码存在两个核心问题:

  1. 在if(userAns === correntAns)分支内,用let correntAns = num1 * num2;重新声明了局部变量,这会覆盖外部的同名变量,导致全局的correntAns根本没被更新,下次答题还是用旧的正确答案。
  2. 目前只有答对时才生成新题目,答错时没有更新题目,不符合答题逻辑——不管对错,提交后都应该展示新的乘法题。

修正后的代码

formEl.addEventListener("submit", function(evt){
    evt.preventDefault();
    const userAns = +inputEl.value;
    inputEl.value = "";
    inputEl.focus();

    // 判断答案对错并更新分数
    if(userAns === correntAns){
        score++;
    }
    submitCount++;

    // 生成新题目并更新全局变量
    const num1 = Math.ceil(Math.random()*10);
    const num2 = Math.ceil(Math.random()*10);
    correntAns = num1 * num2; // 直接更新外部变量,不要用let重新声明

    // 更新页面显示的题目(假设你有questionEl元素展示乘法题)
    questionEl.innerText = `${num1} × ${num2} = ?`;

    // 更新分数显示
    scoreEl.innerText = `Score: ${score}/${submitCount}`;
});

关键修改说明

  • 将生成新题目的逻辑移到判断对错的代码块外,确保每次提交表单都会生成新题目,不管用户答对还是答错。
  • 移除局部的let correntAns声明,直接赋值给外部已声明的correntAns变量,这样下次提交时就能获取到新的正确答案。
  • 增加了题目显示更新的代码,这是必要环节——用户需要看到新的乘法题才能继续答题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:57:23