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

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


当前回答

表单输入元素的ID与元素中包含的数据无关。ID用于将元素与JavaScript和CSS挂钩。然而,name属性在浏览器向服务器发送的HTTP请求中用作与value属性中包含的数据相关联的变量名。

例如:

<form>
    <input type="text" name="user" value="bob">
    <input type="password" name="password" value="abcd1234">
</form>

提交表单时,表单数据将包含在HTTP标头中,如下所示:

如果添加ID属性,则不会更改HTTP标头中的任何内容。它只会让它更容易与CSS和JavaScript挂钩。

其他回答

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">

根据个人经验和W3Schools属性描述:

ID是一个全局属性,几乎适用于HTML中的所有元素。它用于唯一标识网页上的元素,其值主要从前端访问(通常通过JavaScript或jQuery)。

name是对HTML中的特定元素(如表单元素等)有用的属性。它的值大部分被发送到后端进行处理。

HTML属性引用

以下是一个简短的总结:

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

表单输入元素的ID与元素中包含的数据无关。ID用于将元素与JavaScript和CSS挂钩。然而,name属性在浏览器向服务器发送的HTTP请求中用作与value属性中包含的数据相关联的变量名。

例如:

<form>
    <input type="text" name="user" value="bob">
    <input type="password" name="password" value="abcd1234">
</form>

提交表单时,表单数据将包含在HTTP标头中,如下所示:

如果添加ID属性,则不会更改HTTP标头中的任何内容。它只会让它更容易与CSS和JavaScript挂钩。

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

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