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

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


当前回答

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

其他回答

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

它用于通过文档对象模型(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=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


name

元素的名称。例如,服务器用于标识表单中的字段提交。支持元素有<button>、<form>、<fieldset>、<iframe>、,<input>,<keygen>,<object>,<output>,<select>,<textarea>,<map>,<meta>和<param>名称不必是唯一的。

id

通常与CSS一起使用以设置特定元素的样式。这个的价值属性必须唯一。Id是全局属性。全局属性可以用于所有元素,尽管这些属性可能对某些元素没有影响。必须在整个文档中唯一。与此相反,此属性的值不能包含空格class属性,它允许用空格分隔值。使用ASCII字母和数字以外的字符,“_”、“-”和“.”可能会导致兼容性问题,因为HTML 4中不允许这些问题。虽然HTML5中取消了此限制,但ID应该开始带有兼容性字母。

ID用于唯一标识元素。

名称用于表单中。虽然您提交了一份表格,但如果您不提供任何名称,将不会提交任何内容。因此,表单元素需要一个名称来通过表单方法(如“get或push”)进行标识。

只有具有name属性的才会熄灭。