在 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 日期选择器在 Angular 中不起作用