单题切换+倒计时提交的核心是用JavaScript控制题目显隐、记录答题状态并自动提交;结构上每题用div包裹并设data-index,仅显示当前题;切换时保存答案、更新currentQuestion、显隐对应题目;倒计时用setInterval每秒递减,归零时自动提交;提交前校验作答情况并组装数据。

单题切换 + 倒计时提交,核心是用 JavaScript 控制题目显示/隐藏、记录答题状态,并在时间到时自动提交。不需要后端也能实现基础功能,下面分步说明关键点。
一、结构设计:每道题包裹在独立容器中
用 div 包裹每道题(含题干、选项、下一题按钮),所有题目默认隐藏,只显示当前题:
- 给每个题容器加 class="question" 和 data-index 属性(如 data-index="1")
- 用一个变量 currentQuestion = 1 记录当前题号
- 初始时仅显示 data-index="1" 的 div,其余 display: none
二、单题切换逻辑:点击“下一题”时更新显示
监听“下一题”按钮(可复用同一按钮),每次点击执行:
- 保存当前题的用户选择(比如存入数组 answers[currentQuestion-1] = selectedValue)
- currentQuestion 加 1
- 隐藏所有 .question,显示 data-index 等于 currentQuestion 的那个
- 如果是最后一题,按钮文字改为“提交试卷”,点击触发最终提交
三、倒计时实现:用 setInterval 实时更新并自动提交
在页面加载时启动倒计时(例如 30 分钟):
立即学习“前端免费学习笔记(深入)”;
- 设 totalSeconds = 30 * 60,用 setInterval 每秒减 1
- 实时更新页面上的倒计时显示(如 <span id="timer">30:00</span>)
- 当 totalSeconds ≤ 0 时:
→ 清除定时器
→ 自动保存最后一题答案
→ 调用表单 submit() 或弹出提示并禁用操作
四、提交前校验与数据组装
用户点“提交试卷”或倒计时结束时,需汇总所有答案:
- 检查是否每题都有选择(可选:跳过题允许空值,或强制作答)
- 将 answers 数组转为 JSON,或动态生成隐藏 input 插入表单中
- 最终调用 document.getElementById('examForm').submit() 提交到后端
- 若纯前端演示,可用 alert(JSON.stringify(answers)) 查看结果



















