name属性是表单字段提交数据的关键标识,服务器依赖它识别内容;无name则字段值不被发送;应语义清晰、用小写字母与下划线或短横线组合;同名可用于多值场景;name用于提交,id用于DOM定位。

表单字段的 name 属性是提交数据时的关键标识,服务器靠它识别每个字段的内容。没有 name,字段值通常不会被发送到后端。
name 属性必须存在才能提交数据
只有设置了 name 的表单控件(如 input、select、textarea)在提交时才会把值传给服务器。比如:
<input type="text" name="username"> —— 提交后,服务器收到 username=张三;
<input type="text"> —— 没有 name,这个字段的值会被忽略。
name 值应语义清晰且符合命名规范
建议用小写字母、下划线或短横线组合,避免空格和特殊字符。常见写法:
- username(用户名)
- user_email(邮箱,下划线分隔)
- agree-to-terms(同意条款,短横线分隔)
- product_id[](数组形式,用于多选 checkbox 或多个同名字段)
同名字段用于多值场景
多个控件使用相同 name,可批量提交数据:
立即学习“前端免费学习笔记(深入)”;
- 多个 checkbox 都设 name="hobby",选中“阅读”和“游泳”,提交后可能得到 hobby[]=阅读&hobby[]=游泳(取决于后端解析方式)
- 一组 radio 按钮共用 name="gender",确保只能选其一,提交时只传一个值(如 gender=male)
注意 name 和 id 的区别
name 用于数据提交,id 用于 DOM 定位或关联 label。两者可以相同,但作用不同:
<label for="email">邮箱</label>
<input type="email" id="email" name="user_email">
这里 id="email" 让 label 点击聚焦输入框,name="user_email" 决定提交时的字段名。



















