Difference between id and name attributes in HTML
我想知道(特别是关于HTML表单)是否有必要或出于任何原因鼓励使用两者。
当以表单提交方式发送数据时,使用
当然,还有更多的事情要做,但它肯定会让你朝着正确的方向思考。
将
每当需要使用css、javascript或片段标识符来处理特定HTML元素时,都可以使用
下面是一个简短的总结:
id 用于通过文档标识HTML元素对象模型(通过javascript或CSS样式)。预计为id 。在页面中是唯一的。name 对应于表单元素并标识发布的内容回到服务器。
请参阅http://mindprod.com/jgloss/htmlforms.html idvsname
What’s the difference? The short answer is, use both and don’t worry about it. But if you want to understand this goofiness, here’s the skinny:
id= is for use as a target like this:
for links like this: . name= is also used to label the fields in the message send to a server with an HTTP (HyperText Transfer Protocol) GET or POST when you hit submit in a form.
id= labels the fields for use by JavaScript and Java DOM (Document Object Model).
The names in name= must be unique within a form. The names in id= must be unique within the entire document.Sometimes the the name= and id= names will differ, because the server is expecting the same name from various forms in the same document or various radio buttons in the same form as in the example above. The id= must be unique; the name= must not be.
JavaScript needed unique names, but there were too many documents already out here without unique name= names, so the W3 people invented the id tag that was required to be unique. Unfortunately older browsers did not understand it. So you need both naming schemes in your forms.
注意:HTML5中不支持某些标记(如
我对它的思考和使用方法很简单:
ID用于CSS和javascript/jquery(必须在页面中唯一)
当表单通过HTML提交时,name在php中用于表单处理(表单中必须是唯一的-在某种程度上,请参见下面的paul注释)。
ID标记-由CSS使用,定义DIV、SPAN或其他元素的唯一实例。出现在javascript dom模型中,允许您通过各种函数调用访问它们。
字段的名称标记——每个表单都是唯一的——除非您正在执行要传递给PHP/Server端处理的数组。您可以按名称通过javascript访问它,但我认为它不会在DOM中显示为节点,或者可能会应用某些限制(例如,如果我调用正确,则不能使用.innerhtml)。
1 2 3 4 5 6 7 | <form action="demo_form.asp"> <label for="male">Male</label> <input type="radio" name="sex" id="male" value="male"> <label for="female">Female</label> <input type="radio" name="sex" id="female" value="female"> <input type="submit" value="Submit"> </form> |
通常,假定名称总是被ID取代。这在某种程度上是正确的,但实际上不适用于表单域和框架名称。例如,对于表单元素,
1 2 3 | <form id="myForm" name="myForm"> <input type="text" id="userName" name="userName" /> </form> |
为了确保兼容性,最好在定义名称和ID属性值时都具有匹配的名称和ID属性值。但是,要小心一些标记,特别是单选按钮,必须具有非唯一的名称值,但需要唯一的ID值。同样,这应该引用ID不仅仅是名称的替换;它们的用途不同。此外,不要忽视旧的风格方法,深入研究现代库会发现,这种语法风格有时用于性能和易用性目的。您的目标应该始终支持兼容性。
现在在大多数元素中,name属性已经被弃用,取而代之的是更普遍的id属性。但是,在某些情况下,特别是表单字段(
ID和名称之间有明显的区别。通常,当name继续时,我们可以设置相同的值。但是,ID必须是唯一的,并且在某些情况下,名称不应该考虑单选按钮。遗憾的是,ID值的唯一性虽然被标记验证捕获,但并不像它应该的那样一致。浏览器中的CSS实现将为共享ID值的对象设置样式;因此,在运行时之前,我们可能无法捕获可能影响JavaScript的标记或样式错误。
这是从javascript-
链接目标不推荐使用
目标不需要是
或
等,这通常是更干净的代码。
正如其他帖子所明确指出的那样,
这个链接回答了相同的基本问题,但基本上,ID用于脚本标识,名称用于服务器端。
http://www.velocityreviews.com/forums/t15115-id-vs-name-attribute-for-html-controls.html
名称
- 元素的名称。例如,服务器用来标识表单提交中的字段。
- 支撑元件为
。 - 名称不必是唯一的。
身份证件
- 通常与CSS一起使用以设置特定元素的样式。这个的价值属性必须唯一。
- ID是全局属性,它们可以用于所有元素,尽管属性可能对某些元素没有影响。
- 在整个文档中必须是唯一的。
- 与此相反,此属性的值不能包含空格类属性,它允许使用空格分隔的值。
- 使用除ASCII字母和数字以外的字符,""、"-"和"."可能会导致兼容性问题,因为HTML 4中不允许这样做。虽然在HTML5中取消了这个限制,但是应该启动一个ID为了兼容性写了一封信。
表单输入元素的ID与元素中包含的数据无关。ID用于将元素与javascript和css挂钩。但是,name属性在浏览器发送给服务器的HTTP请求中用作与value属性中包含的数据关联的变量名。
例如:
1 2 3 4 | <form> <input type="text" name="user" value="bob"> <input type="password" name="password" value="abcd1234"> </form> |
提交表单时,表单数据将包含在HTTP头中,如下所示:
如果您添加一个id属性,它将不会更改HTTP头中的任何内容。它只会使用CSS和JavaScript钩住它变得更容易。
如果不使用表单自己的提交方法将信息发送到服务器(而是使用javascript),则可以使用name属性将额外信息附加到输入中,这与将其与隐藏的输入值配对类似,但看起来更整洁,因为它已被合并到输入中。
这一点目前在Firefox中仍然有效,尽管我认为在未来它可能无法通过。
您可以有多个具有相同名称值的输入字段,只要您不打算以传统方式提交。
根据个人经验和W3学校的属性描述:
ID是一个全局属性,几乎适用于HTML中的所有元素。它用于唯一标识网页上的元素,其值主要从前端访问(通常通过javascript或jquery)。
name是一个对HTML中的特定元素(如表单元素等)有用的属性。它的值主要被发送到后端进行处理。
https://www.w3schools.com/tags/ref_attributes.asp网站
下面是id属性的有趣用法。它用于标记内,并用于标识边界外元素的表单,以便将它们包含在表单内的其他字段中。
1 2 3 4 5 6 7 8 9 | <form action="action_page.php" id="form1"> First name: <input type="text" name="fname"> <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"> |
身份证件:1)用于通过文档对象模型(通过javascript或CSS样式)识别HTML元素。2)ID在页面内应该是唯一的。
名称对应于表单元素,并标识发布回服务器的内容。例子:
1 2 3 4 5 6 7 8 9 | <form action="action_page.php" id="Myform"> First name: <input type="text" name="FirstName"> <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。
表单中使用了名称。当你提交一份表格时。如果你不提供任何名字,任何东西都不会被提交。只有name属性的才会消失。