id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
当前回答
Id:
它用于通过文档对象模型(DOM)(通过JavaScript或CSS样式)识别HTML元素。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取代。这在某种程度上是正确的,但实际上对于表单字段和框架名称来说不是这样。例如,对于表单元素,name属性用于确定要发送到服务器端程序的名称-值对,不应删除。浏览器不会以这种方式使用id。为了安全起见,可以在表单元素上使用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之间有明显的区别。通常,当name继续时,我们可以将值设置为相同。然而,id必须是唯一的,并且在某些情况下名称不应与单选按钮相关联。遗憾的是,id值的唯一性虽然受到标记验证的限制,但并没有达到应有的一致性。浏览器中的CSS实现将为共享id值的对象设置样式;因此,在运行时之前,我们可能无法捕捉到可能影响JavaScript的标记或样式错误。
本文摘自托马斯·鲍威尔的《JavaScript-完整参考》一书。
在这个问题一直存在的过程中,我很懊恼(也许有点难过),没有人想过提到可访问性,尽管它一直很重要,但它一直在管理层和软件工程师中稳步获得支持(仅从我的个人观察来看;没有硬数据支持)。
我可以提供的一个统计数据如下(来源):
因此,对可访问性缺点的认识呈现出稳步增长的趋势。同样的参考文献提到,从这些数字中,我们可以观察到每小时至少有一次诉讼被提起!
那么,可访问性如何影响姓名与身份?
根据万维网联盟(W3C):
标签的for属性必须与表单控件。
name和id都可以被#作为目标,因此不确定为什么只为该任务提及id。
我经常检查这些属性,以创建指向书签的特定链接(由于某些原因,没有提供使用鼠标光标单击标题以进行相同操作),例如Option File InclusionsMySQL 5.6 4.2.2.2使用选项文件文档部分:
https://dev.mysql.com/doc/refman/5.6/en/option-files.html#option-文件内含物
其中定义为<a name=“option file inclusions”></a>(绝对不涉及表单)。
我认为,在HTML中,name属性也比id旧。
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,而在小表单元素(如input标记或select标记)中使用name。