id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
当前回答
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。
其他回答
如果您没有使用表单自己的提交方法将信息发送到服务器(而是使用JavaScript),则可以使用name属性将额外的信息附加到输入中,就像将其与隐藏的输入值配对一样,但它看起来更整洁,因为它包含在输入中。
虽然我认为在未来它可能不会被允许通过,但这一点目前在Firefox中仍然有效。
您可以有多个具有相同名称值的输入字段,只要您不打算以老式方式提交。
下面的论坛主题有相同基本问题的答案,但基本上,id用于脚本标识,name用于服务器端。
HTML控件的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挂钩。
根据个人经验和W3Schools属性描述:
ID是一个全局属性,几乎适用于HTML中的所有元素。它用于唯一标识网页上的元素,其值主要从前端访问(通常通过JavaScript或jQuery)。
name是对HTML中的特定元素(如表单元素等)有用的属性。它的值大部分被发送到后端进行处理。
HTML属性引用
<body><form action=“”><label for=“username”>用户名</label><input type=“text”id=“username”name=“username“><button>提交</按钮></form></body>
正如我们在这里看到的,“id”和“for”元素是相互关联的。如果单击标签(用户名),则输入字段将突出显示(这对移动用户很有用,被认为是一种良好的做法)。
另一方面,“name”元素在提交表单时很有用。无论您在输入字段中输入什么,它都将显示在URL上。请参阅随附的图片。