id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。

我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。


当前回答

使用表单控件的名称属性(如<input>和<select>),因为这是表单提交时POST或GET调用中使用的标识符。

每当需要使用CSS、JavaScript或片段标识符来处理特定的HTML元素时,请使用id属性。也可以按名称查找元素,但按ID查找更简单、更可靠。

其他回答

我思考和使用它的方式很简单:

id用于CSS和JavaScript/jQuery(它在页面上必须是唯一的)。

当表单通过HTML提交时,该名称用于服务器上的表单处理(表单中的名称必须是唯一的-在某种程度上,请参阅下面Paul的评论)。

使用表单控件的名称属性(如<input>和<select>),因为这是表单提交时POST或GET调用中使用的标识符。

每当需要使用CSS、JavaScript或片段标识符来处理特定的HTML元素时,请使用id属性。也可以按名称查找元素,但按ID查找更简单、更可靠。

在这个问题一直存在的过程中,我很懊恼(也许有点难过),没有人想过提到可访问性,尽管它一直很重要,但它一直在管理层和软件工程师中稳步获得支持(仅从我的个人观察来看;没有硬数据支持)。

我可以提供的一个统计数据如下(来源):

因此,对可访问性缺点的认识呈现出稳步增长的趋势。同样的参考文献提到,从这些数字中,我们可以观察到每小时至少有一次诉讼被提起!

那么,可访问性如何影响姓名与身份?

根据万维网联盟(W3C):

标签的for属性必须与表单控件。

在表单提交中发送数据时使用name属性。不同的控件响应不同。例如,您可能有几个具有不同id属性但名称相同的单选按钮。提交后,响应中只有一个值-您选择的单选按钮。

当然,这还不止于此,但它肯定会让你朝着正确的方向思考。

以下是一个简短的总结:

id用于标识文档中的HTML元素对象模型(通过JavaScript或CSS样式)。需要id在页面中是唯一的。name对应于表单元素并标识发布的内容返回到服务器。