What is the purpose of the name
attribute on input
, span
, or div
tags?应该 id
标签吗?
Mozilla 文档中的 示例:
<label for="User">Click me</label>
<input type="text" id="User" name="Name" />
原文由 northben 发布,翻译遵循 CC BY-SA 4.0 许可协议
What is the purpose of the name
attribute on input
, span
, or div
tags?应该 id
标签吗?
Mozilla 文档中的 示例:
<label for="User">Click me</label>
<input type="text" id="User" name="Name" />
原文由 northben 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 input
元素中, name
属性定义了控件的名称。只有具有名称的控件才能“成功”,即可能有助于将表单数据集发送到服务器。因此,为了使控件的值提交给服务器端处理是必不可少的。 id
属性与此无关;它有自己的用途,例如帮助将标签与控件相关联,如示例中所示。
因此,如果您不需要提交控制值,则不需要 name
属性。例如,如果您有一个像 <input type=submit value=Send>
这样的提交按钮,则不需要它;但是,如果您有多个提交按钮,并且您需要在服务器端识别使用了哪个按钮,那么您就需要它。如果表单数据未发送到服务器端处理而仅在客户端处理中处理,则不使用 name
属性,因为您可以通过其他方式访问这些值。
在 span
和 div
元素中, name
属性在所有HTML版本中都是无效的。如果使用,它将被简单地忽略,除非它存储(像任何无效属性)在 DOM 的 attributes
属性中并且可以在客户端脚本中访问。
考虑问题标题中的一般问题, name
属性在某些元素中被允许和识别,在其他元素中被禁止和忽略,并且在允许时,其含义在元素的定义中定义。这些定义之间没有太多共同点。
有些混淆是由诸如“ name
属性已弃用/过时”之类的陈述引起的。在某些 HTML 版本的某些元素中,此类声明对于此属性是正确的,但在 input
元素中,例如,它仍然是官方和必要的。
原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答1.5k 阅读✓ 已解决
2 回答922 阅读✓ 已解决
1 回答929 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答799 阅读
1 回答803 阅读✓ 已解决
3 回答1.1k 阅读
The
name
attribute identifies the inputvalue
if it is sent to a server via a traditionalGET
orPOST
of a form.具体到示例,如果您有:
然后您提交表单,服务器
localhost
将收到如下内容:正如另一篇文章提到的,通常由服务器端语言(如 PHP)解析为更易于使用的语言。
id
属性标识DOM
的输入。 If you specify an input with noname
but anid
and try to submit it via aGET
orPOST
it will not be parsed由服务器正确。