什么是目的name的属性input,span或div标签?应该使用id标签吗?
Mozilla文档中的示例:
<label for="User">Click me</label>
<input type="text" id="User" name="Name" />
Run Code Online (Sandbox Code Playgroud)
Juk*_*ela 11
在input元素中,该name属性定义控件的名称。只有具有名称的控件才能“成功”,即可能有助于发送到服务器的表单数据集。因此,为了使控件的值提交给服务器端处理是必不可少的。该id属性与此无关;它有自己的用途,例如帮助将标签与控件相关联,如示例中所示。
因此,name如果您不需要提交控件值,则不需要该属性。例如,如果你有一个像 一样的提交按钮<input type=submit value=Send>,你就不需要它;但是,如果您有多个提交按钮,并且需要在服务器端识别使用了哪个按钮,则您需要它。如果表单数据不发送到服务器端处理而是仅在客户端处理中处理,name则不使用该属性,因为您可以通过其他方式访问这些值。
在span和div元素中,一个name属性在所有 HTML 版本中都是无效的。如果使用,它将被简单地忽略,除非它存储(像任何无效属性)在attributesDOM的属性中并且可以在客户端脚本中访问。
考虑问题标题中的一般问题,name属性在某些元素中是允许和识别的,在其他元素中是不允许和忽略的,当允许时,其含义在元素的定义中定义。这些定义之间没有太多共同之处。
诸如“该name属性已弃用/过时”之类的语句引起了一些混淆。对于某些 HTML 版本的某些元素中的此属性,此类声明是正确的,但input例如在元素中,它仍然是官方的和必要的。
如果name输入value是通过传统GET或POST表单发送到服务器,则该属性标识输入.
具体到示例,如果你有:
<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>
Run Code Online (Sandbox Code Playgroud)
并且您提交表单,服务器localhost将收到如下内容正文:
Name=foo
Run Code Online (Sandbox Code Playgroud)
正如另一篇文章所提到的,它通常由像PHP这样的服务器端语言解析成更易于使用的东西.
该id属性标识输入DOM.如果您指定的输入为no name而不是a id并尝试通过a提交,GET或者POST服务器无法正确解析.
名称应该用在 、 等表单字段上<input>,而不应该用在<span>或 上<div>。
锚标记上的名称已过时,您应该使用id代替。
检查此Mozilla 链接(或https://web.archive.org/web/20200803104412/https://developer.mozilla.org/en-US/docs/Web/API/Element/name)了解更多信息:
name获取或设置 DOM 对象的 name 属性;它仅适用于以下元素:
<a>,<applet>,<button>,<form>,<frame>,<iframe>,<img>,<input>,<map>,<meta>,<object>,<param>,<select>, 和<textarea>