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

点击提交按钮时根据答案对错修改表单背景色的技术求助

问题修正方案

你当前的代码有几个关键问题,调整后就能实现需求:


问题点梳理:

  • 函数名拼写不一致:JS里写的是chagecolor,但HTML按钮调用的是changecolor,导致点击无响应
  • 直接拿DOM元素和字符串比较:你现在是把document.getElementById("answer")这个元素对象和"BURJ KHALIFA"比,应该取输入框的value属性值来判断
  • 修改的是输入框背景而非表单背景:你的需求是改表单背景色,但代码里给输入框加了背景色
  • 提交按钮会触发表单默认提交动作,导致页面刷新,颜色刚加上就消失

修正后的完整代码:

HTML 部分

<hr>
What's the tallest building in the world in 2022? <!--BURJ KHALIFA-->
<form id="quizForm">
    <input style="text-transform: uppercase;" type="text" id="answer" name="answer">
    <input onclick="changecolor(event)" id="turnon" type="submit" value="Check Answer">
</form>

JavaScript 部分

function changecolor(event) {
    // 阻止表单默认提交刷新页面
    event.preventDefault();
    // 获取输入框的值,转成大写(确保输入大小写不影响判断)
    const inputValue = document.getElementById("answer").value.toUpperCase();
    // 获取表单元素
    const quizForm = document.getElementById("quizForm");
    
    if (inputValue === "BURJ KHALIFA") {
        // 答案正确,表单设为绿色背景
        quizForm.style.backgroundColor = '#03C13D';
    } else {
        // 答案错误,表单设为红色背景
        quizForm.style.backgroundColor = '#F40320';
    }
}

额外说明:

  • 加了event.preventDefault()阻止表单提交刷新,保证颜色能保留
  • 用toUpperCase()统一转大写,避免用户输入小写或混合大小写导致判断错误
  • 给表单加了id="quizForm",方便精准获取表单元素修改背景色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:01:16