在 HTML5 中不推荐使用 name 属性吗?

Posted

技术标签:

【中文标题】在 HTML5 中不推荐使用 name 属性吗?【英文标题】:Is using name attribute deprecated in HTML5? 【发布时间】:2017-04-05 22:26:52 【问题描述】:

我应该只对表单控件使用name 属性吗? 它今天在 html5 中被弃用了吗?

我注意到类似的问题已经过时,所以我有点困惑。

【问题讨论】:

html.spec.whatwg.org/multipage/indices.html#attributes-3 拥有 HTML 中允许哪些属性以及哪些元素允许这些属性的权威列表。 【参考方案1】:

我应该只对表单控件使用name 属性吗?

没有。它仅在 <a> 元素上已过时(并在任何元素上替换为 id)。

HTML5 规范中的attributes index 显示了仍应使用的位置。

它的一些从来都不是标准的用法应该替换为class

它今天在 HTML5 中被弃用了吗?

HTML5 不使用“已弃用”一词。它将其描述为obsolete。

【讨论】:

2018 年,该文档中不再存在属性表。除了archived copy,您现在可以在html.spec.whatwg.org/multipage/indices.html#attributes-3找到这样的表格【参考方案2】:

使用<a name=""> 似乎已被贬低 - 这意味着您不应该将它用于您的锚标签。

在表单上,​​您仍应使用 name="" 来标记表单控件 - 如果您想使用验证,AngularJS 要求您使用 name=""

更多信息here 和here。

【讨论】:

【参考方案3】:

我检查了 Mozilla 开发者网络 (MDN) 并发现:

名字

<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>

元素的名称。例如,服务器用来识别 表单中的字段提交。

所以你应该只在这些元素上使用这个属性。具有name 属性的任何其他元素都不正确。有关存在哪些属性以及在何处/谁/为什么使用它的更多信息,请查看完整文档:

HTML attribute reference

【讨论】:

以上是关于在 HTML5 中不推荐使用 name 属性吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 AngularJS 指令中不推荐使用 `replace` 属性? [复制]

在 HTML5 中不允许使用多行占位符的理由是啥?

禁用日期的 HTML5 日期选择器在 Angular 中不起作用

什么时候应该在 HTML4/HTML5 中使用 name 属性?

什么是线程组,为什么在 Java 中不推荐使用?

在 API 29 java android 中不推荐使用 getBitmap