898 Stimmen

Unterschied zwischen den Attributen id und name in HTML

Was ist der Unterschied zwischen dem id y name Eigenschaften? Sie scheinen beide dem gleichen Zweck zu dienen, nämlich eine Kennung zu liefern.

Ich würde gerne wissen (insbesondere im Hinblick auf HTML-Formulare), ob die Verwendung beider Formulare aus irgendwelchen Gründen notwendig oder empfehlenswert ist.

12 Stimmen

Es gibt einen sehr guten Thread zu diesem Thema unter stackoverflow.com/questions/7470268/html-eingabe-name-vs-id

0 Stimmen

Die umfassendste Antwort lautet Antwort von Farhan Shirgill Ansari (was nichts über seine Richtigkeit aussagt).

773voto

John Fisher Punkte 21825

El name Attribut wird beim Senden von Daten in einem Formular verwendet. Verschiedene Steuerelemente reagieren unterschiedlich. Sie können zum Beispiel mehrere Optionsfelder mit unterschiedlichen id Attribute, aber die gleichen name . Nach dem Absenden enthält die Antwort nur den einen Wert - das von Ihnen ausgewählte Optionsfeld.

Natürlich geht es um mehr als das, aber es wird Sie auf jeden Fall zum Nachdenken anregen.

0 Stimmen

Würden Sie bitte ein wenig mehr dazu sagen Wenn die Anfrage abgeschickt wird, gibt es nur einen Wert in der Antwort - das von Ihnen ausgewählte Optionsfeld.

3 Stimmen

Gibt es außer der Optionsschaltfläche noch andere Verwendungsmöglichkeiten? Ich denke, es sollte große Unterschiede als das haben?

40 Stimmen

@Prageeth: Der Unterschied besteht darin, dass ein "Name" vom Browser zum Server übertragen wird und anders sein kann als die "id". Es gibt viele Gründe, warum die Leute diesen Unterschied haben wollen. Zum Beispiel kann Ihre Server-seitige Sprache/Framework benötigen die übermittelten Werte, um bestimmte Namen haben, aber Ihr Javascript funktioniert am besten mit etwas ganz anderes in den Ids.

395voto

Warren Young Punkte 38737

Verwenden Sie name Attribute für Formularsteuerelemente (wie z. B. <input> y <select> ), da dies der Bezeichner ist, der in der POST o GET Aufruf, der bei der Übermittlung des Formulars erfolgt.

Verwenden Sie id Attribute, wenn Sie ein bestimmtes HTML-Element mit CSS, JavaScript oder einen Fragment-Bezeichner . Es ist auch möglich, Elemente nach ihrem Namen zu suchen, aber es ist Einfacher und zuverlässiger um sie nach ihrer ID zu durchsuchen.

5 Stimmen

Das war sehr aufschlussreich. Darf ich daraus schließen, dass "name" quasi eine Darstellung des Parameters "identifier" ist, der an den Server übermittelt wird? Diese Frage wird zum Teil durch die akzeptierte Antwort beantwortet, aber nicht in diesen Worten ausgedrückt.

7 Stimmen

@Thomas: Es besteht kein notwendiger Zusammenhang zwischen name y id überhaupt nicht. Der Bezeichner identifiziert eindeutig ein bestimmtes HTML-Element auf der Seite. Der name Attribut eines HTML-Formular-Elements muss dagegen nicht eindeutig sein und ist es oft auch nicht, z. B. bei Optionsfeldern oder Seiten mit mehreren <form> Elemente. Es ist üblich, die gleiche Zeichenkette für name y id wo beide für ein einziges HTML-Element verwendet werden, aber nichts zwingt Sie, dies zu tun.

0 Stimmen

@WarrenYoung was ist mit dem Namensattribut des Formular-Tags. Soweit ich weiß, muss sein Wert auch eindeutig sein, daher bin ich verwirrt, warum es ein name-Attribut für dieses Tag gibt, das die gleiche Aufgabe wie das id-Attribut hat. Meiner Meinung nach ist das name-Attribut für den form-Tag überflüssig und sollte nicht verwendet werden. Stattdessen sollte das id-Attribut verwendet werden. Ich habe es nicht getestet, aber ich denke, wenn Sie mehrere Formulare mit demselben Namen haben, überschreibt das letzte Formular die vorherigen. Abgesehen davon, dass es eigentlich nicht erlaubt ist, stellt sich die Frage, wie viel HTML-Code es gibt, der nicht mit den Regeln übereinstimmt.

192voto

Mike Buckbee Punkte 6623

Hier ist eine kurze Zusammenfassung:

  • id wird verwendet, um identifizieren das HTML-Element durch die Dokument Objektmodell (über JavaScript oder mit CSS gestylt). id wird erwartet muss innerhalb der Seite eindeutig sein.

  • name entspricht dem Formular Element und identifiziert, was veröffentlicht wird zurück zum Server .

35voto

Greeso Punkte 6366

Die Art und Weise, wie ich darüber denke und es verwende, ist einfach:

id wird für CSS und JavaScript/jQuery verwendet (es muss auf einer Seite eindeutig sein).

Name wird für die Formularverarbeitung auf dem Server verwendet, wenn ein Formular über HTML übermittelt wird (es muss in einem Formular eindeutig sein - siehe in gewissem Umfang Paul Kommentar unten).

7 Stimmen

Nicht ganz richtig - die Name Attribut muss in einem Formular nicht eindeutig sein, da es Optionsfelder miteinander verknüpfen kann.

7 Stimmen

Es mag Sie überraschen, aber PHP ist nicht die einzige Serversprache der Welt.

0 Stimmen

@seesharper - Das ist lustig. Ich habe dich sogar hochgestimmt! Nun, ja, das überrascht mich nicht :)

28voto

Roedy Green Punkte 313

Ver id= vs name= :

Was ist der Unterschied? Die kurze Antwort lautet: Verwenden Sie beides und machen Sie sich keine Gedanken darüber. Aber wenn Sie diesen Blödsinn verstehen wollen, hier ist die Kurzfassung:

id= ist für die Verwendung als Zielscheibe wie diese: <some-element id="XXX"></some-element> für Links wie diesen: <a href="#XXX" .

name= wird auch verwendet, um die Felder in der Nachricht zu kennzeichnen, die mit einem HTTP (HyperText Transfer Protocol) GET oder POST an einen Server gesendet wird, wenn Sie in einem Formular auf submit drücken.

id= kennzeichnet die Felder zur Verwendung durch JavaScript und Java DOM (Document Object Model). Die Namen in name= müssen innerhalb eines Formulars eindeutig sein. Die Namen in id= müssen innerhalb des gesamten Dokuments eindeutig sein.

Manchmal unterscheiden sich die Namen name= und id=, weil der Server denselben Namen von verschiedenen Formularen im selben Dokument oder verschiedenen Optionsfeldern im selben Formular erwartet, wie im obigen Beispiel. Der id= muss eindeutig sein, der name= nicht.

JavaScript brauchte eindeutige Namen, aber es gab bereits zu viele Dokumente ohne eindeutige name=-Namen, also erfanden die W3-Leute den id-Tag, der eindeutig sein musste. Leider haben ältere Browser dies nicht verstanden. Sie brauchen also beide Benennungsschemata in Ihren Formularen.

Hinweis : Attribut "name" für einige Tags wie <a> wird nicht unterstützt in HTML5 .

1 Stimmen

Außerdem verlinkt dieser (nicht registrierte) Benutzer auf seine eigene Seite (der Link in seinem Profil lautet mindprod.com/jgloss ). I

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X