是唯一真正隐藏且随表单提交的字段,必须正确设置 type="hidden"、name 和 value 属性;常用于传递非敏感上下文如订单id或csrf令牌,但不可用于存储密码等敏感信息,后端必须校验。

用 <input type="hidden"> 最直接——它不显示在页面上,但会随表单一起提交到服务器,适合传用户不需要看到、也不该手动改的数据,比如订单ID、CSRF令牌、步骤标识等。
必须写对的三个属性
隐藏字段不是“写了就行”,关键属性缺一不可:
- type="hidden":类型必须拼写准确,不能是 "hide" 或 "hiddenfield"
- name:后端靠这个键名取值,漏写就等于没传;多个 hidden 字段 name 不能重复(除非有意覆盖)
-
value:要传的实际内容,可以是静态值,也可以是服务端模板生成的结果(如 PHP 的
<?php echo $token; ?>)
常见踩坑和怎么避
很多问题不是语法错,而是逻辑疏忽:
- 把
<input type="hidden">写在<form></form>外面——它不会被提交;如果必须放外面,得加form="form-id"显式关联 - 用
id当成name用——id只用于前端定位,后端收不到 - value 来自 URL 或用户输入却没转义——比如
value="<script>alert(1)</script>"可能触发 XSS;推荐用 JS 动态赋值时用element.value = safeValue,别用innerHTML - value 为空字符串(
value="")——后端收到的是空串,不是null,需提前判断处理
JS 动态设置 value 的注意事项
很多场景下值不是写死的,比如从 localStorage 读购物车 ID,或点击按钮时记录操作时间:
- 确保 DOM 已就绪再操作,推荐把脚本放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











