id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
id和name属性之间有什么区别?它们似乎都具有提供标识符的相同目的。
我想知道(特别是关于HTML表单)是否出于任何原因需要或鼓励同时使用两者。
当前回答
使用表单控件的名称属性(如<input>和<select>),因为这是表单提交时POST或GET调用中使用的标识符。
每当需要使用CSS、JavaScript或片段标识符来处理特定的HTML元素时,请使用id属性。也可以按名称查找元素,但按ID查找更简单、更可靠。
其他回答
在表单提交中发送数据时使用name属性。不同的控件响应不同。例如,您可能有几个具有不同id属性但名称相同的单选按钮。提交后,响应中只有一个值-您选择的单选按钮。
当然,这还不止于此,但它肯定会让你朝着正确的方向思考。
<form action="demo_form.asp">
<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="sex" id="female" value="female"><br>
<input type="submit" value="Submit">
</form>
参见id=vs name=:
有什么不同?简单的答案是,两者都用,不用担心。但如果你想了解这种愚蠢,这里有一个小问题:id=用作如下目标:<some element id=“XXX”></some element>用于以下链接:<a href=“#XXX”。
name=还用于在表单中点击提交时,使用HTTP(超文本传输协议)GET或POST标记发送到服务器的消息中的字段。id=标记JavaScript和Java DOM(文档对象模型)使用的字段。name=中的名称在表单中必须唯一。id=中的名称必须在整个文档中唯一。有时,名称=和id=名称会有所不同,因为服务器希望同一文档中的不同表单或同一表单中的不同单选按钮具有相同的名称。id=必须唯一;名称=不能为。JavaScript需要唯一的名称,但是这里已经有太多的文档没有唯一的name=name,所以W3的人发明了需要唯一的id标签。不幸的是,较旧的浏览器不理解它。因此,您需要在表单中使用这两种命名方案。
注意:HTML5中不支持某些标签(如<a>)的属性“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查找更简单、更可靠。