HTML表单的`name`属性有什么意义?
HTML表单上的name
属性有什么意义? 据我所知,你不能在提交时阅读表格名称或做任何事情。 它有用吗?
简而言之,可能简单一点:它被用来代替不明白document.getElementById
浏览器的id
。
这些天它没有真正的目的。 这是从浏览器之战的早期版本开始,在使用name
来描述如何在提交表单时发送控制值以及在页面内部标识一个元素的过程。
从规格 :
name
属性表示forms
集合中form
的名称。
一旦为一个元素指定了一个名字,你可以在整个代码中通过document.name_of_element
来引用该元素。 当你有多个相同名称的字段时,它们不会工作,但它确实允许像下面这样的快捷方式:
<form name="myform" ...> document.myform.submit();
代替
document.getElementsByName('myform')[0].submit();
您可以使用name属性作为“额外信息”属性 – 类似于隐藏的input – 但是这将额外的信息保留在表单中,这使得读取/访问变得简单一些。
以下是MDN对此的评价:
name
表单的名称。 在HTML 4中,不推荐使用它(应该使用id
)。 它必须在文档中的表单中是唯一的,而不仅仅是HTML 5中的空string。
(来自https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-name )
我发现它有点混乱,指定它必须是HTML 5中的唯一,非空string,当它在HTML 4中被弃用时。(我猜这个要求只适用于name
属性被指定的情况?)。 但我认为可以肯定的是,它曾经服务过的任何目的已经被id
属性所取代。