表单必须显式设method="post"和有效action;单选/多选/下拉需统一name且value为提交值;text/textarea/submit必须有name才提交;required和type仅作前端提示,后端校验不可少。

用 <form></form> 定义问卷容器,必须指定 method 和 action
不设 method 时浏览器默认用 GET,但问卷通常含敏感或长文本(如开放式回答),应显式写 method="POST";action 指向后端接收地址,开发阶段可先设为 action="/submit" 或留空(部分浏览器允许本地测试),但上线前必须真实有效。漏写 action 会导致点击提交后页面刷新却无数据发送。
常见错误:<form method="post"></form> 拼错 method 值(如写成 "postt"),或把 action 写成相对路径但没配好服务器路由。
单选、多选、下拉用 <input type="radio">、<input type="checkbox">、<select></select>
同一组单选题所有 <input type="radio"> 必须共用相同 name(如 name="q1"),否则无法互斥;多选题同理用 checkbox,但每个选项可独立勾选。<select></select> 默认单选,加 multiple 属性才支持按住 Ctrl 多选。
-
<input type="radio" name="q2" value="agree"> 同意——value是提交值,不是显示文字 -
<select name="q3"><option value="a">选项A</option></select>——<option></option>的value才是后端收到的值,空value会传空字符串 - 多选
<input type="checkbox" name="q4" value="js"> JavaScript—— 若需提交数组,后端要能解析同名多个值(如 PHP 自动转为数组,Node.js 需用urlencoded中间件并设extended: true)
文本输入和提交按钮必须带 name,否则不参与提交
<input type="text">、<textarea></textarea>、<input type="submit"> 这三类元素,若没写 name,整个字段不会出现在提交数据中。尤其 <textarea></textarea> 容易被忽略——它没有 value 属性,内容写在标签体内,但仍需 name 才能发出去。
示例:<textarea name="feedback">请填写意见</textarea> —— 提交后键为 feedback,值为用户输入内容;若删掉 name,后端收不到这个字段。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
另一个坑:<input type="submit" value="提交"> 如果加了 name="btn",部分老浏览器会把 btn=提交 当作额外参数发过去,干扰后端判断,建议提交按钮不设 name,仅用 id 或 CSS 控制样式。
用 required 和 type 做基础校验,但别依赖前端验证
required 属性让浏览器阻止空提交,type="email"、type="number" 能触发原生格式提示。但这些只防误操作,不能替代后端校验——用户禁用 JS 或用 curl 直接发请求,所有前端限制都失效。
实际使用注意:
-
<input type="email" required>对test@这种明显错误会拦截,但对user@domain(缺后缀)可能放行,不同浏览器规则不一 -
<input type="number" min="1" max="5">可防止超范围输入,但用户仍可粘贴非法值或改 DOM 绕过 - 复杂逻辑(如“如果选‘其他’,则下方文本框必填”)必须用 JS 监听 + 后端双重检查
表单结构本身很简单,真正容易出问题的是字段命名一致性、空值处理逻辑,以及前后端对多选/文件/日期等类型的数据约定是否匹配。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










