name
,input
或span
标记的div
属性的用途是什么?是否应该使用id
代码?
来自Mozilla's documentation的示例:
<label for="User">Click me</label>
<input type="text" id="User" name="Name" />
答案 0 :(得分:6)
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>
并且您提交表单,服务器localhost
将收到如下内容正文:
Name=foo
正如另一篇文章所提到的,通常由像PHP这样的服务器端语言解析成更容易使用的东西。
id
属性标识DOM
的输入。如果您指定的输入不是name
而是id
并尝试通过GET
或POST
提交,则服务器将无法正确解析该输入。
答案 1 :(得分:3)
名称应该用在<input>
等表单字段上,不应在<span>
或<div>
上使用。
名称在锚标记上已过时,您应该使用id。
查看此mozilla link了解更多信息:
name获取或设置DOM对象的name属性;它仅适用于以下元素:
<a>
,<applet>
,<button>
,<form>
,<frame>
,<iframe>
,<img>
,<input>
,<map>
,<meta>
,<object>
,<param>
,<select>
和<textarea>
答案 2 :(得分:2)
在input
元素中,name
属性定义控件的名称。只有具有名称的控件才能“成功”,即可能有助于发送到服务器的表单数据集。因此,为了使控制的值提交给服务器端处理,它是必不可少的。 id
属性与此无关;它有自己的用途,例如帮助将标签与控件相关联,如示例所示。
因此,如果您不需要提交控件值,则不需要name
属性。例如,如果您有一个像<input type=submit value=Send>
这样的提交按钮,则不需要它;但如果你有几个提交按钮,你需要识别,服务器端,使用哪一个,你需要它。如果表单数据未发送到服务器端处理但仅在客户端处理中处理,则不使用name
属性,因为您可以使用其他方法访问值。
在span
和div
元素中,name
属性在所有HTML版本中均无效。如果使用它,它将被简单地忽略,除非它在DOM中的attributes
属性中存储(如任何无效属性),并且可以在客户端脚本中访问。
考虑问题标题中的一般问题,name
属性在某些元素中被允许和识别,在其他元素中被禁止和忽略,并且在允许时,其含义在元素的定义中定义。这些定义之间没有太多共同之处。
“name
属性已被弃用/过时”这样的陈述引起了一些混淆。在某些HTML版本的某些元素中,此类语句对于此属性是正确的,但在input
元素中,它仍然是官方且必要的。
答案 3 :(得分:1)
如果定义链接(a-Element)并为其定义名称,则可以将其用作锚点。 请参阅:http://www.w3schools.com/tags/att_a_name.asp
或更一般地说:https://developer.mozilla.org/en-US/docs/Web/API/Element.name
答案 4 :(得分:0)
name属性适用于使用PHP等其他语言读写数据或其他文件的数据。要引用上面的文本字段,您可以引用其名称“Name”,并将“Name”文本字段中的值写入数据库。
希望这有助于澄清事情..