verschil tussen ID en naamkenmerken in HTML

Wat is het verschil tussen de iden nameATTIBUTEN? Ze lijken allebei hetzelfde doel te dienen om een ​​identifier te bieden.

Ik zou graag willen weten (specifiek met betrekking tot HTML-formulieren), al dan niet gebruik van beide nodig of aangemoedigd om welke reden dan ook.


1, Autoriteit 100%

De nameATTIBUTE wordt gebruikt bij het verzenden van gegevens in een formulierinzending. Verschillende bedieningselementen reageren anders. U kunt bijvoorbeeld verschillende radioetsen hebben met verschillende idATTIBUTEN, maar dezelfde name. Indien ingediend, is er slechts de ene waarde in het antwoord – het keuzerondje dat u hebt geselecteerd.

Natuurlijk is er meer dan dat, maar het zal je zeker in de goede richting laten denken.


2, Autoriteit 52%

Gebruik nameATTIBUTEN VOOR VORMBEURIGHEDEN (zoals <input>EN <select>), Aangezien deze de identifier is die in De POSTOF GETOproep die gebeurt op formulierinzending.

Gebruik idAttributen wanneer u een bepaald HTML-element met CSS, JavaScript of een fragmentidentificatie . Het is mogelijk om elementen op te zoeken op naam, maar het is eenvoudiger en betrouwbaarder om ze op te zoeken door ID.


3, Autoriteit 23%

Hier is een korte samenvatting:

  • idWORDT GEBRUIKT NAAR Identificeer het HTML-element via het -document
    Objectmodel
    (via JavaScript of gestileerd met CSS). idwordt verwacht
    uniek zijn binnen de pagina.

  • namekomt overeen met het formelement en identificeert wat er wordt gepost
    terug naar de server
    .


Antwoord 4, autoriteit 4%

De manier waarop ik erover nadenk en het gebruik is eenvoudig:

idwordt gebruikt voor CSS en JavaScript/jQuery (moet uniek zijn in een pagina)

naamwordt gebruikt voor formulierverwerking op de server wanneer een formulier wordt ingediend via HTML (moet uniek zijn in een formulier – tot op zekere hoogte, zie Paul‘s opmerking hieronder)


Antwoord 5, autoriteit 4%

Bekijk deze http://mindprod.com/jgloss/htmlforms.html#IDVSNAME

Wat is het verschil? Het korte antwoord is: gebruik beide en maak je er geen zorgen over. Maar als je deze gekheid wilt begrijpen, hier is de magere:

id= is voor gebruik als een doel zoals dit: <some-element id="XXX"></some-element>voor links zoals deze: <a href="#XXX".

name= wordt ook gebruikt om de velden te labelen in het bericht dat naar een server wordt verzonden met een HTTP (HyperText Transfer Protocol) GET of POST wanneer u op verzenden in een formulier drukt.

id= geeft de velden een label voor gebruik door JavaScript en Java DOM (Document Object Model).
De namen in name= moeten uniek zijn binnen een formulier. De namen in id= moeten uniek zijn binnen het hele document.

Soms zullen de naam= en id= namen verschillen, omdat de server dezelfde naam verwacht van verschillende vormen in hetzelfde document of verschillende keuzerondjes in dezelfde vorm als in het bovenstaande voorbeeld. De id= moet uniek zijn; de naam= mag niet zijn.

JavaScript had unieke namen nodig, maar er waren al te veel documenten zonder unieke naam=namen, dus de W3-mensen bedachten de id-tag die uniek moest zijn. Helaas begrepen oudere browsers het niet. U hebt dus beide naamgevingsschema’s in uw formulieren nodig.

OPMERKING: kenmerk “naam” voor sommige tags zoals <a>wordt niet ondersteund in HTML5.


Antwoord 6, autoriteit 2%

ID-tag – gebruikt door CSS, definieer een uniekeinstantie van een div, span of andere elementen. Verschijnt binnen het Javascript DOM-model, zodat u ze kunt openen met verschillende functieaanroepen.

Naamtag voor velden – Dit is uniek per formulier— tenzij je een array doet die je wilt doorgeven aan PHP/server-side verwerking. Je kunt het via Javascript op naam openen, maar ik denk dat het niet als een knooppunt in de DOM verschijnt of dat er beperkingen van toepassing kunnen zijn (je kunt bijvoorbeeld .innerHTML niet gebruiken, als ik het me goed herinner).


Antwoord 7, autoriteit 2%

Over het algemeen wordt aangenomen dat name altijd wordt vervangen door id. Dit is tot op zekere hoogte waar, maar praktisch gezien niet voor formuliervelden en framenamen. Met formulierelementen wordt het kenmerk namebijvoorbeeld gebruikt om de naam-waarde-paren te bepalen die naar een server-side programmamoeten worden verzonden en mag dit niet worden geëlimineerd. Browsers do not use id in that manner. Voor de zekerheid zou je name- en id-attributen op formulierelementen kunnen gebruiken. We zouden dus het volgende schrijven:

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

Om compatibiliteit te garanderen, is het een goed idee om overeenkomende naam- en id-kenmerkwaarden te gebruiken wanneer beide zijn gedefinieerd. Wees echter voorzichtig: sommige tags, met name keuzerondjes, moeten niet-unieke naamwaarden hebben, maar vereisen unieke id-waarden.Nogmaals, dit zou moeten verwijzen naar het feit dat id niet alleen een vervanging is voor naam; ze zijn verschillend van doel. Bovendien, sluit de oude benadering niet uit, een diepgaande blik op moderne bibliotheken laat zien dat een dergelijke syntaxisstijl soms wordt gebruikt voor prestatie- en gemaksdoeleinden. Je doel moet altijd in het voordeel zijn van compatibiliteit.

In de meeste elementen is het name-attribuut vervangen door het meer alomtegenwoordige id-attribuut. In sommige gevallen echter met name formuliervelden (<button>, <input>, <select>en <textarea>), blijft het name-attribuut voortbestaan omdat het nog steeds vereist is om het naam-waarde-paar in te stellen voor het indienen van formulieren. We zien ook dat sommige elementen, met name frames en links, het name-attribuut kunnen blijven gebruiken, omdat het vaak handig is om deze elementen op naam op te halen.

Er is een duidelijk onderscheid tussen id en naam. Heel vaak kunnen we de waarden hetzelfde instellen als de naam doorgaat. ID moet echter uniek zijn, en naam in sommige gevallen niet, denk aan keuzerondjes. Helaas is het unieke karakter van id-waarden, hoewel gevangen door opmaakvalidatie, niet zo consistent als het zou moeten zijn. CSS-implementatie in browsers zal objecten opmaken die een id-waarde delen; het is dus mogelijk dat we tot runtime geen opmaak- of stijlfouten ontdekken die ons JavaScript kunnen beïnvloeden.

Dit komt uit het boek JavaScript- The Complete Reference by Thomas-Powell


Antwoord 8, autoriteit 2%

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

Antwoord 9

Deze link heeft antwoorden op dezelfde basisvraag, maar in feite wordt id gebruikt voor identificatie van scripts en naam is voor server-side.

http://www. speedreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html


Antwoord 10

nameis verouderd voor linkdoelen en is ongeldig in HTML5. Het werkt niet meer, althans niet in de nieuwste Firefox (v13). Verander <a name="hello">in<a id="hello">

Het doel hoeft geen <a>-tag te zijn, het kan <p id="hello"> zijn. of <h2 id="hello">enz., wat vaak schonere code is.

Zoals andere berichten duidelijk zeggen, wordt namenog steeds gebruikt (nodig) in formulieren. Het wordt ook nog steeds gebruikt in META-tags.


Antwoord 11

De ID van een formulierinvoerelement heeft niets te maken met de gegevens in het element. ID’s zijn voor het koppelen van het element met JavaScript en CSS. Het name-attribuut wordt echter gebruikt in het HTTP-verzoek dat door uw browser naar de server wordt verzonden als een variabelenaam die is gekoppeld aan de gegevens in het value-attribuut.

Bijvoorbeeld:

<form>
    <input type="text" name="user" value="bob">
    <input type="password" name="password" value="abcd1234">
</form>

Wanneer het formulier wordt ingediend, worden de formuliergegevens opgenomen in de HTTP-header als volgt:

Als u een ID-kenmerk toevoegt, zal het niets in de HTTP-header wijzigen. Het maakt het gewoon gemakkelijker om het te haken met CSS en JavaScript.


12

Als u niet de eigen verzendmethode van het formulier gebruikt om informatie naar een server te verzenden (en in plaats daarvan javascript gebruikt), kunt u het name-attribuut gebruiken om extra informatie aan een invoer toe te voegen – in plaats van het te koppelen met een verborgen invoerwaarde, maar ziet er netter uit omdat deze is opgenomen in de invoer.

Dit bit werkt momenteel nog steeds in Firefox, hoewel ik veronderstel dat het in de toekomst misschien niet wordt doorgelaten.

U kunt meerdere invoervelden hebben met dezelfde naamwaarde, zolang u niet van plan bent om op de ouderwetse manier in te dienen.


Antwoord 13

<body>
<form action="">
    <label for="username">Username</label>
    <input type="text" id="username" name="username">
    <button>Submit!</button>
</form>
</body>

Antwoord 14

ID:
1) Het wordt gebruikt om het HTML-element te identificeren via het Document Object Model (via Javascript of gestyled met CSS).
2) ID is naar verwachting uniek binnen de pagina.

Naam komt overeen met het formulierelement en identificeert wat terug naar de server wordt gepost.
Voorbeeld:

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

Antwoord 15

Op basis van persoonlijke ervaringen en volgens de beschrijving van W3 Schools voor attributen:

ID is een algemeen kenmerk en is van toepassing op vrijwel alle elementen in HTML. Het wordt gebruikt om elementen op de webpagina op unieke wijze te identificeren, en de waarde ervan is meestal toegankelijk vanaf de frontend (meestal via JavaScript of jQuery).

naam is een attribuut dat nuttig is voor specifieke elementen (zoals formulierelementen, enz.) in HTML. De waarde ervan wordt meestal naar de backend gestuurd voor verwerking.

https://www.w3schools.com/tags/ref_attributes.asp


Antwoord 16

ID wordt gebruikt om een element uniek te identificeren.

Naam wordt gebruikt in formulieren. Hoewel u een formulier indient, wordt er niets ingediend als u geen naam opgeeft. Daarom hebben formulierelementen een naam nodig om geïdentificeerd te worden door formuliermethoden zoals “get or push”.

En degenen die alleen het naamattribuut hebben, gaan uit.


Antwoord 17

Hieronder ziet u een interessant gebruik van het id-attribuut. Het wordt gebruikt binnen de tag en gebruikt om het formulier te identificeren voor elementen buiten de grenzen, zodat ze worden opgenomen in de andere velden binnen het formulier.

<form action="action_page.php" id="form1">
 First name: <input type="text" name="fname"><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="lname" form="form1">

Antwoord 18

Er is geen letterlijk verschil tussen een id en naam.

naam is identifier en wordt gebruikt in http-verzoeken die door de browser naar de server worden verzonden als een variabelenaam die is gekoppeld aan gegevens in het value-attribuut van het element.

De id aan de andere kant is een unieke identifier voor browser, client-side en JavaScript. Vandaar dat formulier een id nodig heeft, terwijl de elementen een naam nodig hebben.

id wordt specifieker gebruikt bij het toevoegen van attributen aan unieke elementen. In DOM-methoden wordt Id in Javascript gebruikt om te verwijzen naar het specifieke element waarop u uw actie wilt laten plaatsvinden.

Bijvoorbeeld:

<html>
<body>
<h1 id="demo"></h1>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>

Hetzelfde kan worden bereikt met name-attribuut, maar het heeft de voorkeur om id in vorm en naam te gebruiken voor kleine vormelementen zoals de invoertag of select-tag.


Antwoord 19

De idgeeft een element een id, dus zodra u echte code schrijft (zoals JavaScript), kunt u de id gebruiken om elementen te lezen. De nameis slechts een naam, zodat de gebruiker de naam van het element kan zien, denk ik.

Voorbeeld:

<h1 id="heading">text</h1>
<script>
  document.getElementById("heading"); //Reads the element that has the id "heading".
</script>
//You can also use something like this:
document.getElementById("heading").value; //Reads the value of the selected element.

Is het nuttig?
Laat het me weten als er problemen zijn.

Other episodes