HTML中id和name属性的区别

Difference between id and name attributes in HTML

idname属性有什么区别?它们似乎都是为了提供一个标识符。

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


当以表单提交方式发送数据时,使用name属性。不同的控制反应不同。例如,您可能有几个具有不同id属性的单选按钮,但同一name属性。提交后,响应中只有一个值—您选择的单选按钮。

当然,还有更多的事情要做,但它肯定会让你朝着正确的方向思考。


name属性用于表单控件(如标记很重要,因为参数在HTTP中使用,id只是一个唯一的标识符。

  • 此外,这个(未注册的)用户正在链接到他自己的页面(他个人资料中的链接说mindprod.com/jgloss)。我不知道这是否是问题所在,但考虑到这个令人困惑的片段,我觉得这不合适。

  • 我对它的思考和使用方法很简单:

    ID用于CSS和javascript/jquery(必须在页面中唯一)

    当表单通过HTML提交时,name在php中用于表单处理(表单中必须是唯一的-在某种程度上,请参见下面的paul注释)。


    ID标记-由CSS使用,定义DIV、SPAN或其他元素的唯一实例。出现在javascript dom模型中,允许您通过各种函数调用访问它们。

    字段的名称标记——每个表单都是唯一的——除非您正在执行要传递给PHP/Server端处理的数组。您可以按名称通过javascript访问它,但我认为它不会在DOM中显示为节点,或者可能会应用某些限制(例如,如果我调用正确,则不能使用.innerhtml)。


    1
    2
    3
    4
    5
    6
    7
    <form action="demo_form.asp">
    <label for="male">Male</label>
    <input type="radio" name="sex" id="male" value="male">
    <label for="female">Female</label>
    <input type="radio" name="sex" id="female" value="female">
    <input type="submit" value="Submit">
    </form>

    通常,假定名称总是被ID取代。这在某种程度上是正确的,但实际上不适用于表单域和框架名称。例如,对于表单元素,name属性用于确定要发送到服务器端程序的名称-值对,不应消除。Browsers do not use id in that manner。为了安全起见,可以在表单元素上使用name和id属性。因此,我们将写下以下内容:

    1
    2
    3
    <form id="myForm" name="myForm">
         <input type="text" id="userName" name="userName" />
    </form>

    为了确保兼容性,最好在定义名称和ID属性值时都具有匹配的名称和ID属性值。但是,要小心一些标记,特别是单选按钮,必须具有非唯一的名称值,但需要唯一的ID值。同样,这应该引用ID不仅仅是名称的替换;它们的用途不同。此外,不要忽视旧的风格方法,深入研究现代库会发现,这种语法风格有时用于性能和易用性目的。您的目标应该始终支持兼容性。

    现在在大多数元素中,name属性已经被弃用,取而代之的是更普遍的id属性。但是,在某些情况下,特别是表单字段(