HTML表单`name`属性有什么意义?

Yar*_*rin 51 html forms

nameHTML表单上的属性有什么意义?据我所知,您无法在提交时阅读表单名称或使用它执行任何其他操作.它有用吗?

Que*_*tin 51

简而言之,可能过于简单化:它用于代替id不理解的浏览器document.getElementById.

这些天它没有任何实际意义.在使用之前name描述如何在提交表单时发送控件值并id识别页面中的元素已解决之前,它是浏览器战争早期的遗产.

  • @charles,只是为了澄清,只要您想将表单数据发送到服务器,就必须使用name属性.但是,问题是关于`<form>`元素本身的name属性. (7认同)
  • @charles - 问题是关于`<form>`元素而不是`<input>`元素.name属性的定义因不同的元素而异. (4认同)
  • @Luchostein要注意,在HTML5中不推荐使用关于表单`name`属性. (4认同)
  • 是的,一个真正的答案.谢谢.不知道有关浏览器不理解`document.getElementById`的信息.我想我们可以跳过那些,是吗? (3认同)
  • 它还有一个目的:`type = radio`和`type = checkbox`需要`name`属性来共享控件名称(即同一组)[W3 spec](http://www.w3.org/TR /html401/interact/forms.html#control-name) (3认同)

Mat*_*all 12

规格:

name属性表示集合中form的名称forms.

  • @Yarin - 您可以使用`id`. (2认同)

Mar*_*c B 7

为元素指定名称后,可以document.name_of_element在整个代码中引用该元素.当你有多个相同名称的字段时,它们也不起作用,但它确实允许以下快捷方式:

<form name="myform" ...>

document.myform.submit();
Run Code Online (Sandbox Code Playgroud)

代替

document.getElementsByName('myform')[0].submit();
Run Code Online (Sandbox Code Playgroud)

  • 你可以通过ID来做到这一点,所以如果这是唯一的用例,它并不重要 (2认同)

Sea*_*ean 6

以下是MDN对此的说法:

name
表单的名称。在 HTML 4 中,不推荐使用它(id应该使用它)。它在文档中的表单中必须是唯一的,而不仅仅是 HTML 5 中的空字符串。

(来自<form>、属性、名称

我发现它在 HTML 4 中被弃用时指定它必须是 HTML 5 中唯一的非空字符串,这有点令人困惑。(我猜这个要求仅在name指定属性时才适用?)。但我认为可以肯定地说,它曾经起到的任何作用都已被该id属性所取代。