能提交的问卷表单需正确设置form的action、method和控件name属性:action填有效后端地址或“#”防跳转,method推荐post,所有input/select/textarea必须有name,提交按钮用button[type="submit"]或input[type="submit"]。

怎么用 <form></form> 搭出能提交的问卷表单
纯 HTML 表单本身不“收集”数据,它只负责把用户填的内容打包发给后端地址。没配好 action 和 method,点提交就 404 或刷新白屏。
实操建议:
立即学习“前端免费学习笔记(深入)”;
-
action必须填真实可用的接收地址(比如/api/submit),本地测试时可先设为"#"防止跳转,但别忘了改回来 -
method选"POST"更安全,尤其含敏感字段;"GET"会把答案拼在 URL 里,容易泄露、长度也受限 - 每个
<input>、<select></select>、<textarea></textarea>必须带name属性,否则后端收不到这个字段——这是最常漏的点 - 别用
<div> 模拟按钮,必须用 <code><button type="submit"></button>或<input type="submit">,否则触发型提交行为不可靠单选/多选/下拉题怎么写才不丢数据
常见错误是多个
radio没共用name,导致选了也只传一个空值;或者checkbox忘加value,后端收到的全是"on"。实操建议:
立即学习“前端免费学习笔记(深入)”;
- 同一组单选题所有
<input type="radio">的name必须完全一致(比如name="q1"),否则浏览器当它们是独立控件 - 每个
checkbox单独设置value,比如<input type="checkbox" name="hobby" value="reading">,不然后端没法区分勾了哪几项 - 下拉菜单
<select multiple></select>要加multiple属性,且name建议加[](如name="skills[]"),方便后端识别为数组(PHP/Node.js 等常见服务端默认这样解析)
提交失败时页面没提示?检查这三处
表单没反应、控制台报错或提交后回到空白页,大概率不是 JS 问题,而是 HTML 结构断层。
实操建议:
立即学习“前端免费学习笔记(深入)”;
- 确认
<form></form>标签闭合完整,嵌套在<table> 或 <code><div> 里时容易被浏览器自动截断(尤其老版本 IE) <li>检查有没有多个 <code><form></form>嵌套——HTML 规范禁止嵌套form,部分浏览器会静默忽略内层 - 如果用了
<button></button>但没写type,某些浏览器默认为"submit",点它就会意外触发提交;保险起见显式写type="button"或type="submit" - 确保页面
里有<meta name="viewport" content="width=device-width, initial-scale=1">,否则 iOS Safari 可能缩放失准,按钮变小难点击 -
<button></button>或<input type="submit">的font-size别小于16px,iOS 对小于 16px 的可点击区域有特殊处理逻辑,可能导致点击无响应 - 避免用
pointer-events: none或透明度为 0 的覆盖层,即使看不见,也可能拦截触摸事件
为什么移动端点不了提交按钮
不是 CSS 遮挡就是触摸事件没激活。HTML 层面最容易忽略的是
viewport设置和按钮尺寸。实操建议:
立即学习“前端免费学习笔记(深入)”;
表单结构看着简单,但
name、method、action这三个属性一旦写错或遗漏,整个链路就断了。后端能不能收到数据,80% 取决于这三处有没有手抖。 - 同一组单选题所有











