Was ist der Unterschied zwischen den id
und name
Attributen? Beide scheinen dem gleichen Zweck zu dienen, eine Kennung bereitzustellen.
Ich würde gerne wissen (speziell in Bezug auf HTML-Formulare), ob die Verwendung von beiden aus irgendeinem Grund notwendig oder empfohlen ist.
html
attributes
Yogi Bär
quelle
quelle
Antworten:
Das
name
Attribut wird beim Senden von Daten in einer Formularübermittlung verwendet. Unterschiedliche Steuerelemente reagieren unterschiedlich. Beispielsweise können Sie mehrere Optionsfelder mit unterschiedlichenid
, aber gleichen Attributen habenname
. Bei der Übermittlung enthält die Antwort nur einen Wert - das von Ihnen ausgewählte Optionsfeld.Natürlich steckt noch mehr dahinter, aber es wird Sie definitiv dazu bringen, in die richtige Richtung zu denken.
quelle
id
auszudrücken: Ihr Frontend (CSS, JS) arbeitet damit, währendname
Ihr Server es empfängt und dann verarbeiten kann. Dies ist im Grunde, was Greesos Antwort sagt.Verwenden Sie
name
Attribute für Formularsteuerelemente (z. B.<input>
und<select>
), da dies die Kennung ist, die im AufrufPOST
oder beimGET
Aufruf des Formulars verwendet wird.Verwenden Sie
id
Attribute, wenn Sie ein bestimmtes HTML-Element mit CSS, JavaScript oder einer Fragmentkennung adressieren müssen . Es ist auch möglich, Elemente nach Namen zu suchen, aber es ist einfacher und zuverlässiger , sie nach ID zu suchen.quelle
name
undid
überhaupt. Der Bezeichner identifiziert ein bestimmtes HTML-Element auf der Seite eindeutig. Imname
Gegensatz dazu muss das Attribut eines HTML-Formularelements nicht eindeutig sein und ist es häufig nicht, z. B. bei Optionsfeldern oder Seiten mit mehreren<form>
Elementen. Es ist traditionell üblich, dieselbe Zeichenfolge fürname
und zu verwenden,id
wenn beide für ein einzelnes HTML-Element verwendet werden, aber nichts bringt Sie dazu, dies zu tun.Hier ist eine kurze Zusammenfassung:
id
wird verwendet, um das HTML-Element über das Dokumentobjektmodell zu identifizieren (über JavaScript oder mit CSS gestaltet).id
wird voraussichtlich innerhalb der Seite eindeutig sein.name
entspricht dem Formularelement und identifiziert, was an den Server zurückgesendet wird .quelle
Siehe diese http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
HINWEIS: Das Attribut "Name" für einige Tags wie
<a>
wird in HTML5 nicht unterstützt.quelle
name
ist wichtig für<input>
Tags in einer<form>
Übermittlung, da die Parameter im HTTP verwendet werden, undid
ist lediglich eine eindeutige KennungDie Art und Weise, wie ich darüber nachdenke und es benutze, ist einfach:
id wird für CSS und JavaScript / jQuery verwendet (muss auf einer Seite eindeutig sein)
name wird für die Formularbearbeitung in PHP verwendet, wenn ein Formular über HTML gesendet wird (muss in einem Formular eindeutig sein - bis zu einem gewissen Grad siehe Pauls Kommentar unten)
quelle
ID-Tag - Wird von CSS verwendet und definiert eine eindeutige Instanz eines Div, Span oder anderer Elemente. Wird im Javascript-DOM-Modell angezeigt, sodass Sie mit verschiedenen Funktionsaufrufen darauf zugreifen können.
Namensschild für Felder - Dies ist pro Formular eindeutig - es sei denn, Sie führen ein Array aus, das Sie an die PHP- / serverseitige Verarbeitung übergeben möchten. Sie können über Javascript namentlich darauf zugreifen, aber ich denke, dass es nicht als Knoten im DOM angezeigt wird oder dass einige Einschränkungen gelten (Sie können beispielsweise .innerHTML nicht verwenden, wenn ich mich richtig erinnere).
quelle
Im Allgemeinen wird davon ausgegangen, dass der Name immer durch die ID ersetzt wird . Dies ist bis zu einem gewissen Grad wahr, aber nicht für , praktisch Formularfelder und Rahmennamen . Bei Formularelementen wird das
name
Attribut beispielsweise verwendet, um die Name-Wert-Paare zu bestimmen, die an ein serverseitiges Programm gesendet werden sollen, und sollte nicht entfernt werden.Browsers do not use id in that manner
. Um auf der sicheren Seite zu sein, können Sie Namens- und ID-Attribute für Formularelemente verwenden. Also würden wir folgendes schreiben:Um die Kompatibilität sicherzustellen, ist es eine gute Idee, übereinstimmende Namens- und ID-Attributwerte zu haben, wenn beide definiert sind. Seien Sie jedoch vorsichtig - einige Tags, insbesondere Optionsfelder, müssen nicht eindeutige Namenswerte haben, erfordern jedoch eindeutige ID-Werte. Dies sollte wiederum darauf hinweisen, dass die ID nicht nur ein Ersatz für den Namen ist. Sie haben einen unterschiedlichen Zweck. Darüber hinaus sollten Sie den Ansatz des alten Stils nicht außer Acht lassen. Ein genauer Blick auf moderne Bibliotheken zeigt, dass ein solcher Syntaxstil manchmal aus Gründen der Leistung und Einfachheit verwendet wird. Ihr Ziel sollte immer die Kompatibilität sein.
In den meisten Elementen wurde das Namensattribut zugunsten des allgegenwärtigeren ID-Attributs verworfen. In einigen Fällen bilden sich jedoch insbesondere Felder (
<button>
,<input>
,<select>
und<textarea>
), das Namensattribut am Leben, weil es erforderlich werden , weiterhin den Name-Wert - Paar für Formularübermittlung einzustellen. Außerdem stellen wir fest, dass einige Elemente, insbesondere Frames und Links, möglicherweise weiterhin das Namensattribut verwenden, da es häufig nützlich ist, um diese Elemente nach Namen abzurufen.Es gibt eine klare Unterscheidung zwischen ID und Name. Sehr oft, wenn der Name weitergeht, können wir die Werte gleich einstellen. Die ID muss jedoch eindeutig sein, und der Name sollte in einigen Fällen nicht - denken Sie an Optionsfelder. Leider ist die Eindeutigkeit von ID-Werten, obwohl sie von der Markup-Validierung erfasst wird, nicht so konsistent, wie sie sein sollte. Durch die CSS-Implementierung in Browsern werden Objekte formatiert, die einen gemeinsamen ID-Wert haben. Daher werden Markup- oder Stilfehler, die sich auf unser JavaScript auswirken könnten, möglicherweise erst zur Laufzeit abgefangen.
Dies ist aus dem Buch JavaScript- entnommen.
The Complete Reference by Thomas-Powell
quelle
name
sollte der Code derselbe sein (dem serverseitigen Code ist es egal, welcher gesendet wurde), aber der Codeid
muss unterschiedlich sein (da er auf der gesamten Seite eindeutig sein muss).name
ist für Linkziele veraltet und in HTML5 ungültig. Zumindest in der neuesten Version von Firefox (v13) funktioniert dies nicht mehr. Wechseln Sie<a name="hello">
zu<a id="hello">
Das Ziel muss kein
<a>
Tag sein, es kann<p id="hello"
> oder<h2 id="hello">
usw. sein, was häufig sauberer Code ist.Wie andere Beiträge klar sagen,
name
wird es immer noch in Formularen verwendet (benötigt). Es wird auch weiterhin in META-Tags verwendet.quelle
quelle
Dieser Link enthält Antworten auf dieselbe grundlegende Frage. Grundsätzlich wird jedoch die ID für die Skriptidentifizierung und der Name für die Serverseite verwendet.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
quelle
name Vs id
Name
<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
Ich würde
quelle
name
Attribute gesehen , die in Stilelementen verwendet wurden. Ich nehme an, das ist ungültig?Die ID eines Formulareingabeelements hat nichts mit den im Element enthaltenen Daten zu tun. IDs dienen zum Verknüpfen des Elements mit JavaScript und CSS. Das Namensattribut wird jedoch in der von Ihrem Browser an den Server gesendeten HTTP-Anforderung als Variablenname verwendet, der den im Wertattribut enthaltenen Daten zugeordnet ist.
Zum Beispiel:
Wenn das Formular gesendet wird, werden die Formulardaten wie folgt in den HTTP-Header aufgenommen:
Wenn Sie ein ID-Attribut hinzufügen, ändert sich nichts am HTTP-Header. Es wird nur einfacher, es mit CSS und JavaScript zu verknüpfen.
quelle
Wenn Sie nicht die eigene Übermittlungsmethode des Formulars verwenden, um Informationen an einen Server zu senden (und dies stattdessen mit Javascript tun), können Sie das Attribut name verwenden, um zusätzliche Informationen an eine Eingabe anzuhängen - anstatt sie mit einem versteckten Eingabewert zu koppeln. sieht aber ordentlicher aus, weil es in den Eingang integriert ist.
Dieses Bit funktioniert derzeit noch in Firefox, obwohl es in Zukunft möglicherweise nicht mehr zugelassen wird.
Sie können mehrere Eingabefelder mit demselben Namenswert haben, solange Sie nicht vorhaben, die altmodische Methode einzureichen.
quelle
Basierend auf persönlichen Erfahrungen und gemäß der Beschreibung der W3-Schulen für Attribute:
ID ist ein globales Attribut und gilt für praktisch alle Elemente in HTML. Es wird verwendet, um Elemente auf der Webseite eindeutig zu identifizieren, und auf seinen Wert wird meistens über das Frontend zugegriffen (normalerweise über JavaScript oder jQuery).
name ist ein Attribut, das für bestimmte Elemente (wie Formularelemente usw.) in HTML nützlich ist. Sein Wert wird meistens zur Verarbeitung an das Backend gesendet.
https://www.w3schools.com/tags/ref_attributes.asp
quelle
Im Folgenden finden Sie eine interessante Verwendung des ID-Attributs. Es wird innerhalb des Tags verwendet und verwendet, um das Formular für Elemente außerhalb der Grenzen zu identifizieren, damit sie in die anderen Felder des Formulars aufgenommen werden.
quelle
ID: 1) Es wird verwendet, um das HTML-Element über das Dokumentobjektmodell zu identifizieren (über Javascript oder mit CSS gestaltet). 2) Es wird erwartet, dass die ID innerhalb der Seite eindeutig ist.
Der Name entspricht dem Formularelement und gibt an, was an den Server zurückgesendet wird. Beispiel:
quelle
ID wird verwendet, um ein Element eindeutig zu identifizieren.
Der Name wird in Formularen verwendet. Obwohl Sie ein Formular senden, wird nichts gesendet, wenn Sie keinen Namen angeben. Daher benötigen Formularelemente einen Namen, um durch Formularmethoden wie "get or push" identifiziert zu werden.
Und diejenigen, die nur ein Namensattribut haben, gehen aus.
quelle
Das
id
gibt einem Element eine ID. Sobald Sie also echten Code (wie JavaScript) geschrieben haben, können Sie die ID zum Lesen von Elementen verwenden. Dasname
ist nur ein Name, damit der Benutzer den Namen des Elements sehen kann, denke ich.Beispiel:
Ist es hilfreich? Lassen Sie mich wissen, wenn es Probleme gibt.
quelle
Es gibt keinen wörtlichen Unterschied zwischen einer ID und einem Namen.
name ist ein Bezeichner und wird in einer vom Browser an den Server gesendeten http-Anforderung als Variablenname verwendet, der den im value-Attribut des Elements enthaltenen Daten zugeordnet ist.
Die ID hingegen ist eine eindeutige Kennung für Browser, Client und JavaScript. Das Formular benötigt daher eine ID, während die Elemente einen Namen benötigen.
id wird insbesondere zum Hinzufügen von Attributen zu eindeutigen Elementen verwendet. In DOM-Methoden wird ID in Javascript verwendet, um auf das spezifische Element zu verweisen, für das Ihre Aktion ausgeführt werden soll.
Zum Beispiel:
Dasselbe kann durch das Namensattribut erreicht werden, es wird jedoch bevorzugt, ID in Form und Name für kleine Formularelemente wie das Eingabe-Tag oder das Select-Tag zu verwenden.
quelle