HTML 名称属性的用途是什么?

新手上路,请多包涵

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 许可协议

阅读 285
2 个回答

The name attribute identifies the input value if it is sent to a server via a traditional GET or POST of a form.

具体到示例,如果您有:

 <form action="http://localhost" method="POST">
    <label for="User">Click me</label>
    <input type="text" id="User" name="Name" value="foo" />
    <input type="submit" value="submit" />
</form>

然后您提交表单,服务器 localhost 将收到如下内容:

 Name=foo

正如另一篇文章提到的,通常由服务器端语言(如 PHP)解析为更易于使用的语言。

id 属性标识 DOM 的输入。 If you specify an input with no name but an id and try to submit it via a GET or POST it will not be parsed由服务器正确。

原文由 user3357118 发布,翻译遵循 CC BY-SA 3.0 许可协议

input 元素中, name 属性定义了控件的名称。只有具有名称的控件才能“成功”,即可能有助于将表单数据集发送到服务器。因此,为了使控件的值提交给服务器端处理是必不可少的。 id 属性与此无关;它有自己的用途,例如帮助将标签与控件相关联,如示例中所示。

因此,如果您不需要提交控制值,则不需要 name 属性。例如,如果您有一个像 <input type=submit value=Send> 这样的提交按钮,则不需要它;但是,如果您有多个提交按钮,并且您需要在服务器端识别使用了哪个按钮,那么您就需要它。如果表单数据未发送到服务器端处理而仅在客户端处理中处理,则不使用 name 属性,因为您可以通过其他方式访问这些值。

spandiv 元素中, name 属性在所有HTML版本中都是无效的。如果使用,它将被简单地忽略,除非它存储(像任何无效属性)在 DOM 的 attributes 属性中并且可以在客户端脚本中访问。

考虑问题标题中的一般问题, name 属性在某些元素中被允许和识别,在其他元素中被禁止和忽略,并且在允许时,其含义在元素的定义中定义。这些定义之间没有太多共同点。

有些混淆是由诸如“ name 属性已弃用/过时”之类的陈述引起的。在某些 HTML 版本的某些元素中,此类声明对于此属性是正确的,但在 input 元素中,例如,它仍然是官方和必要的。

原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题