Answers:
name
在表单提交中发送数据时使用该属性。不同的控件反应不同。例如,您可能有几个单选按钮,它们具有不同的id
属性,但属性相同name
。提交后,响应中只有一个值-您选择的单选按钮。
当然,这还不止于此,但它一定会让您思考正确的方向。
id
是您的前端(CSS,JS)使用的功能,同时name
也是服务器接收并可以处理的内容。这基本上就是Greeso的回答。
将name
属性用于表单控件(例如<input>
和<select>
),因为这是表单提交时在POST
或GET
调用中使用的标识符。
id
每当您需要使用CSS,JavaScript或片段标识符来寻址特定的HTML元素时,请使用属性。也可以通过名称查找元素,但是通过ID 查找元素更简单,更可靠。
name
,并id
在所有。该标识符唯一地标识页面上的特定HTML元素。name
相比之下,HTML表单元素的属性不必唯一,通常也不是唯一的,例如单选按钮或包含多个<form>
元素的页面。传统上在同一HTML元素上使用,name
并且id
在同一HTML元素上使用相同的字符串,但是没有什么让您这样做。
看到这个http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
有什么不同?简短的答案是,请同时使用两者,不要担心。但是,如果您想了解这种愚蠢的做法,请参考以下内容:
id =用作这样的目标:
<some-element id="XXX"></some-element>
对于这样的链接:<a href="#XXX"
。当您单击表单中的提交时,name =还用于标记发送到HTTP(超文本传输协议)GET或POST到服务器的消息中的字段。
id =标记供JavaScript和Java DOM(文档对象模型)使用的字段。name =中的名称在表单中必须唯一。id =中的名称在整个文档中必须是唯一的。
有时,name =和id =名称会有所不同,因为服务器期望同一文档中各种形式的名称相同,或者与上述示例相同的形式使用各种单选按钮。id =必须是唯一的;name =一定不能。
JavaScript需要唯一的名称,但是这里已经有太多没有唯一的name =名称的文档,因此W3人们发明了唯一的id标签。不幸的是,较旧的浏览器无法理解。因此,您需要表单中的两种命名方案。
注意:<a>
HTML5不支持某些标记之类的属性“名称” 。
name
很重要,并且仅仅是唯一的标识符<input>
<form>
id
通常,假定name始终被id取代。从某种意义上说,这是正确的,但实际上对于表单字段和框架名称而言,并非如此。例如,对于表单元素,该name
属性用于确定要发送到服务器端程序的名称/值对,并且不应消除。Browsers do not use id in that manner
。为了安全起见,可以在表单元素上使用name和id属性。因此,我们将编写以下内容:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
为确保兼容性,定义两个名称和id属性值时要匹配,这是一个好主意。但是,请小心-一些标签,尤其是单选按钮,必须具有唯一的名称值,但需要唯一的id值。再一次,这应该引用id不仅仅是名称的替代;他们的目的不同。此外,不要低估旧式方法,深入了解现代库会发现这种语法风格有时用于性能和易用性。您的目标应该始终是兼容性。
现在,在大多数元素中,不建议使用name属性,而推荐使用更普遍的id属性。然而,在某些情况下,特别是形成字段(<button>
,<input>
,<select>
和<textarea>
),name属性生命上,因为它仍然需要设定表单提交的名称-值对。此外,我们发现某些元素(尤其是框架和链接)可能会继续使用name属性,因为它对于按名称检索这些元素通常很有用。
id和name之间有明显的区别。通常,当名称继续出现时,我们可以将值设置为相同。但是,id必须是唯一的,在某些情况下,名称应该不是唯一的-想想单选按钮。令人遗憾的是,虽然id值的唯一性虽然受到标记验证的约束,但却没有达到应有的一致性。浏览器中的CSS实现将为共享ID值的对象设置样式;因此,直到运行时,我们才可能捕获可能影响JavaScript的标记或样式错误。
摘自JavaScript- The Complete Reference by Thomas-Powell
name
应当相同(服务器端代码不在乎提交的是哪个),但是id
必须不同(因为它在整个页面中必须是唯一的)。
name
对于链接目标已弃用,在HTML5中无效。它至少在最新的Firefox(v13)中不再起作用。更改<a name="hello">
为<a id="hello">
目标不需要是<a>
标签,可以是<p id="hello"
>或<h2 id="hello">
等,这通常是更干净的代码。
正如其他帖子明确指出的那样,name
表格仍在使用(需要)。它也仍在META标签中使用。
该链接具有相同基本问题的答案,但基本上,id用于脚本标识,名称用于服务器端。
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
name Vs id
名称
<button>, <form>, <fieldset>, <iframe>,
<input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>,
<meta>, <param>
name
样式元素中使用的属性。我认为这是无效的?
表单输入元素的ID与该元素中包含的数据无关。ID用于将元素与JavaScript和CSS挂钩。但是,名称属性在浏览器发送到服务器的HTTP请求中用作与值属性中包含的数据关联的变量名称。
例如:
<form>
<input type="text" name="user" value="bob">
<input type="password" name="password" value="abcd1234">
</form>
提交表单后,表单数据将包含在HTTP标头中,如下所示:
如果添加ID属性,它将不会更改HTTP标头中的任何内容。它将使其更容易与CSS和JavaScript挂钩。
基于个人经验并根据W3学校对属性的描述:
ID是全局属性,几乎适用于HTML中的所有元素。它用于唯一地标识Web页面上的元素,并且其值通常是从前端访问的(通常是通过JavaScript或jQuery)。
名称是对HTML中的特定元素(例如表单元素等)有用的属性。它的值主要发送到后端进行处理。
以下是id属性的有趣用法。它在标记内使用,用于标识边界外元素的形式,以便它们将与表单中的其他字段一起包括。
<form action="action_page.php" id="form1">
First name: <input type="text" name="fname"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="lname" form="form1">
ID:1)用于通过文档对象模型(通过Javascript或CSS样式)识别HTML元素。2)ID应该在页面中是唯一的。
名称与表单元素相对应,并标识发布回服务器的内容。范例:
<form action="action_page.php" id="Myform">
First name: <input type="text" name="FirstName"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="LastName" form="Myform">
ID用于唯一标识元素。
名称用于表格中。尽管您提交了表格,但是如果您不提供任何名称,则不会提交任何内容。因此,表单元素需要一个名称,才能通过“ get或push”之类的表单方法进行标识。
并且只有name属性的那些将消失。
该id
将给元素的ID,所以一旦你编写真正的代码(如JavaScript),你可以使用id阅读元素。我name
只是一个名称,因此用户可以看到元素的名称。
例:
<h1 id="heading">text</h1>
<script>
document.getElementById("heading"); //Reads the element that has the id "heading".
</script>
//You can also use something like this:
document.getElementById("heading").value; //Reads the value of the selected element.
有帮助吗?让我知道是否有问题。
id和名称之间没有字面差异。
name是标识符,在浏览器发送到服务器的http请求中用作与与元素的value属性中包含的数据关联的变量名称。
另一方面,id是浏览器,客户端和JavaScript的唯一标识符。因此表单需要一个id,而其元素需要一个名称。
id更专门用于将属性添加到唯一元素中。在DOM方法中,Id在Javascript中用于引用要对其执行操作的特定元素。
例如:
<html>
<body>
<h1 id="demo"></h1>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>
可以通过name属性实现相同的功能,但最好在表单和名称中使用id来输入小形式的元素,例如输入标签或选择标签。