直接在中嵌入并添加class="quiz-input"统一样式,设autocomplete="off"防干扰;单选/多选题需按行组织,radio共用name、checkbox加[]后缀;校验需JS分类处理,提交推荐独立form或JS显式取值。

怎么让表格单元格变成可填空的答题区
直接在 常见错误:把 单选题别用 多选题同理,但用 不能只靠 容易踩的坑:用 表格内放 性能影响很小,但逻辑更清晰:JS 里用 复杂点在于,如果测验页还有其他表单(比如登录框),必须确保 JS 获取 input 时加足够精确的选择器,否则会误读其他区域的输入框。名字带 quiz- 前缀或包在 里放 就行,但别用 type="text" 默认样式——太丑、没提示、焦点不明显。推荐加 class="quiz-input" 统一控制宽高和边框,同时设 autocomplete="off" 防浏览器自动填充干扰判分。 套在 里又没写 for 属性,导致点击文字无法聚焦;或者忘了设 name,提交时拿不到值。
input 的 name 必须唯一,方便后续用 FormData 或 form.elements 批量取值.quiz-input { width: 80px; padding: 4px; border: 1px solid #ccc; text-align: center; },避免用户输长答案撑破表格如何用表格结构组织单选/多选题
直接塞进 ——这样每道题的选项会跨行错位。正确做法是:每道题占一行( ),题干在第一列,选项用 并列排开,每个 input 的 name 相同(如 name="q2"),value 不同(如 "A"、"B")。type="checkbox",注意 name 后加 [](如 name="q3[]"),否则后端只能收到最后一个勾选值。
必须共用同一 name,否则互斥失效 里混写文字和 input,建议用 确保点击文字也能选中提交前怎么校验表格里的答案是否填全
required 属性——它对 radio 和 checkbox 支持差,且无法区分“空字符串”和“未填写”。得用 JS 遍历所有 input,按类型分别处理:
type="text":检查 .value.trim() !== ""
type="radio":用 form.querySelectorAll('input[name="q2"]:checked').length === 0 判断是否未选type="checkbox":若题目要求“至少选一个”,就检查 form.querySelectorAll('input[name="q3[]"]:checked').length === 0
form.elements 取到的是类数组,得转成数组再 filter;另外,表格里可能有非答题用的 input(比如搜索框),务必加特定 class 或 name 前缀来过滤。为什么 submit 按钮放在表格外更稳妥
容易触发浏览器默认行为:把整个表格当表单提交,而实际你只想要 里的
input 数据。更可靠的做法是让表格不包裹 ,而是用独立 包住整个表格,或干脆不用 标签,改用按钮 + JS 提交。document.querySelector('table.quiz-table').querySelectorAll('input') 显式取值,比依赖表单序列化更可控,尤其当你需要对答案做预处理(比如转大写、去空格)时。 里是最简单的隔离方式。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











