当使用HTML <input>标记时,使用名称和id属性之间的区别是什么,特别是我发现它们有时命名相同?


当前回答

如果你使用JavaScript/CSS,你必须使用控件的“id”来应用任何CSS/JavaScript的东西。

如果使用name, CSS将不能用于该控件。例如,如果使用JavaScript日历附加到文本框,则必须使用文本控件的id为其分配JavaScript日历。

其他回答

输入上的name属性由其父HTML <form>s用于将该元素作为POST请求中的HTTP表单成员或GET请求中的查询字符串包含在内。

id应该是唯一的,因为JavaScript应该使用它在DOM中选择元素进行操作,并在CSS选择器中使用。

名称定义了表单提交后属性的名称。因此,如果您稍后想要读取此属性,您将在POST或GET请求中的“name”下找到它。

而在JavaScript或CSS中,id用于寻址字段或元素。

id用于在JavaScript或CSS中唯一地标识一个元素。

该名称用于表单提交。当您提交表单时,只有带有名称的字段将被提交。

name用于在DOM(文档对象模型)中提交表单。

ID用于DOM中HTML控件的唯一名称,尤其是JavaScript和CSS控件。

name属性用于发布到例如web服务器。id主要用于CSS(和JavaScript)。假设你有这样的设置:

<input id="message_id" name="message_name" type="text" />

为了在发布表单时使用PHP获取该值,它将使用name属性,如下所示:

$_POST["message_name"];

如前所述,当您想使用特定的CSS内容时,id用于样式化。

#message_id
{
    background-color: #cccccc;
}

当然,您可以对id和name属性使用相同的名称。这两者不会互相干扰。

此外,name可以用于更多的项目,比如当你使用单选按钮时。然后使用Name对单选按钮进行分组,因此只能选择其中一个选项。

<input id="button_1" type="radio" name="option" />
<input id="button_2" type="radio" name="option" />

在这个非常具体的例子中,我可以进一步说明id是如何使用的,因为你可能需要一个带有单选按钮的标签。Label有一个for属性,它使用输入的id将这个标签链接到输入(单击标签时,选中按钮)。下面是一个例子

<input id="button_1" type="radio" name="option" /><label for="button_1">Text for button 1</label>
<input id="button_2" type="radio" name="option" /><label for="button_2">Text for button 2</label>