La différence entre les attributs id et name dans le HTML
Quelle est la différence entre le id
et name
attributs? Ils semblent tous deux au service d'un même but de fournir un identificateur.
Je voudrais savoir (particulièrement en ce qui concerne les formulaires HTML) ou non à l'aide de deux est nécessaire ou recommandé pour toutes les raisons.
- Il est très bon thread sur ce sujet, au stackoverflow.com/questions/7470268/html-input-name-vs-id
Vous devez vous connecter pour publier un commentaire.
La
name
attribut est utilisé lors de l'envoi des données dans un formulaire de soumission. Les différents contrôles réagissent différemment. Par exemple, vous pouvez avoir plusieurs boutons radio avec différentsid
attributs, mais la mêmename
. Lors de la soumission, il n'existe qu'une seule valeur dans la réponse - le bouton radio sélectionné.Bien sûr, il n'y a plus que ça, mais il va certainement vous faire réfléchir dans le bon sens.
id
est ce que votre frontend (CSS, JS) travaille avec, tout enname
est-ce que votre serveur reçoit et peut ensuite la traiter. C'est essentiellement ce qu'Greeso la réponse dit.Utilisation
name
attributs pour les contrôles de formulaire (comme<input>
et<select>
), comme c'est l'identifiant utilisé dans lePOST
ouGET
appel qui se passe sur le formulaire de soumission.Utilisation
id
attributs à chaque fois que vous devez vous adresser à un particulier de l'élément HTML avec CSS, JavaScript ou un identificateur de fragment. Il est possible de rechercher des éléments par nom, aussi, mais c'est plus simple et plus fiable pour les regarder par ID.name
etid
à tous. L'identificateur qui identifie de manière unique un particulier de l'élément HTML de la page. Lename
attribut d'un élément de formulaire HTML, en revanche, n'a pas à être unique, et souvent ce n'est pas, comme avec des boutons radio ou des pages avec plusieurs<form>
éléments. Il est classique d'utiliser la même chaîne pourname
etid
où les deux sont utilisés sur un seul élément HTML, mais rien ne vous fait faire cela.Voici un bref résumé:
id
est utilisé pour identifier l'élément HTML par le biais de la DocumentModèle d'objet (via JavaScript ou en forme avec CSS).
id
est prévupour être unique dans la page.
name
correspond à la forme élément et identifie ce qui est affichéde retour sur le serveur.
Voir ce http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
REMARQUE: l'attribut "name" de certaines balises comme
<a>
n'est pas pris en charge dans HTML5.name
est important pour<input>
des balises dans un<form>
soumission que les paramètres sont utilisés dans le HTTP, etid
est simplement un identifiant uniqueLa façon dont je pense à ce sujet et de les utiliser, c'est simple:
id est utilisé pour les CSS et JavaScript/jQuery (doit être unique dans une page)
nom est utilisé pour la gestion des formulaires en PHP lorsqu'un formulaire est soumis par l'intermédiaire du HTML (doit être unique dans un formulaire - dans une certaine mesure, voir Pauls'commentaire ci-dessous)
ID tag - utilisé par les CSS, définir un unique instance d'un div, span, ou d'autres éléments. Apparaît dans le code Javascript, DOM modèle, vous permettant d'accéder à divers appels de fonction.
Étiquette de nom de domaines - Ce qui est unique par forme -- sauf si vous faites un tableau qui vous voulez passer à PHP/traitement côté serveur. Vous pouvez y accéder via Javascript par son nom, mais je pense qu'il n'apparaît pas comme un nœud dans les DOM ou à certaines restrictions peuvent s'appliquer (vous ne pouvez pas utiliser .innerHTML, par exemple, si je me souviens bien).
name
est déconseillé pour les cibles de liens, et non valide en HTML5. Elle ne travaille plus au moins dans le dernier Firefox (v13). Changement<a name="hello">
à<a id="hello">
La cible n'a pas besoin d'être un
<a>
balise, il peut être<p id="hello"
> ou<h2 id="hello">
etc. ce qui est souvent plus propre code.Que les autres postes de dire clairement,
name
est encore utilisé (nécessaire) dans les formes. Il est encore utilisé dans les balises META.Généralement, il est présumé que nom est toujours remplacé par l'id de. C'est vrai, dans une certaine mesure, mais pas pour les champs de formulaire et le cadre de noms, pratiquement parlant. Par exemple, avec des éléments de formulaire, la
name
attribut est utilisé pour déterminer la paires nom-valeur à être envoyé à un programme côté serveur et ne doit pas être éliminé.Browsers do not use id in that manner
. Pour être sur le côté sécuritaire, vous pouvez utiliser les attributs name et id sur les éléments de formulaire. Donc, nous devons écrire la suivante:Pour assurer la compatibilité, ayant même nom et de l'id de valeurs d'attribut lorsque les deux sont définies est une bonne idée. Cependant, attention, certaines balises, particulièrement des boutons radio doit avoir pas unique nom de valeurs, mais nécessitent des valeurs d'id unique. Encore une fois, cela devrait référence que l'id n'est pas simplement un remplacement pour le nom; elles sont différentes dans le but. En outre, ne négligez pas l'ancienne approche, un regard profond sur les bibliothèques montre un tel style de syntaxe utilisée pour la performance et la facilité des fins à la fois. Votre objectif doit toujours être en faveur de la compatibilité.
Maintenant dans la plupart des éléments, le nom de l'attribut a été dépréciée en faveur de la plus omniprésente attribut id. Toutefois, dans certains cas, en particulier les champs de formulaire (
<button>
,<input>
,<select>
, et<textarea>
), le nom de l'attribut de la vie, car il continue d'être nécessaire pour définir la paire nom-valeur pour l'envoi du formulaire. Aussi, nous constatons que certains éléments, notamment d'images et de liens, peut continuer à utiliser le nom de l'attribut, car il est souvent utile pour la récupération de ces éléments par leur nom.Il existe une distinction claire entre l'id et le nom. Très souvent, quand le nom se poursuit, nous pouvons définir les valeurs de la même. Toutefois, l'id doit être unique, et le nom dans certains cas, de ne pas penser à des boutons radio. Malheureusement, l'unicité des valeurs d'id, tandis que pris par la validation de balisage, n'est pas aussi uniforme qu'il devrait l'être. L'implémentation de CSS dans les navigateurs style des objets ayant une valeur d'id; ainsi, on ne peut pas attraper de balisage ou le style des erreurs qui pourraient nuire à notre code JavaScript jusqu'à l'exécution.
C'est tiré du livre JavaScript-
The Complete Reference by Thomas-Powell
name
doit être le même (le code côté serveur ne se soucie pas de ce qui a été présenté), mais leid
doit être différent (car il doit être unique dans l'ensemble de la page).Ce lien a les réponses à la même question de base, mais, fondamentalement, id est utilisé pour l'écriture de scripts d'identification et le nom est pour le côté serveur.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
name Vs id
nom
les champs dans le formulaire soumet.
<button>, <form>, <fieldset>, <iframe>,
<input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>,
<meta>, <param>
id
l'attribut doit être unique.
les attributs peuvent avoir aucun effet sur certains éléments.
l'attribut de classe, ce qui permet à l'espace de valeurs séparées.
peut provoquer des problèmes de compatibilité, car ils n'étaient pas autorisés dans le HTML 4.
Si cette restriction a été levée en HTML 5, un ID doit commencer
avec une lettre pour la compatibilité.
name
attributs utilisés dans les éléments de style. Je suppose que c'est invalide?L'ID d'un élément de formulaire n'a rien à voir avec les données contenues dans l'élément. Les id sont pour l'accrochage de l'élément avec le JavaScript et le CSS. Le nom de l'attribut, cependant, est utilisé dans la requête HTTP envoyée par votre navigateur sur le serveur comme un nom de variable associé avec les données contenues dans l'attribut value.
Par exemple:
Lorsque le formulaire est soumis, les données du formulaire seront incluses dans l'en-tête HTTP comme ceci:
Si vous ajoutez un attribut ID, il ne va pas changer quoi que ce soit dans l'en-tête HTTP. Il va juste le rendre plus facile à accrocher avec CSS et JavaScript.
Si vous n'êtes pas à l'aide du formulaire méthode submit pour envoyer des informations à un serveur (et au lieu de le faire à l'aide de javascript), vous pouvez utiliser l'attribut name de joindre des informations supplémentaires à une entrée - un peu comme le jumeler avec une cachée de la valeur d'entrée, mais semble plus propre, car elle est incorporée dans l'entrée.
Ce bit n'a encore actuellement des travaux dans Firefox, bien que je suppose que, dans l'avenir, il pourrait ne pas être autorisé à passer.
Vous pouvez avoir plusieurs champs de saisie avec la même valeur de nom, aussi longtemps que vous n'avez pas l'intention de soumettre à l'ancienne.
Ci-dessous est une utilisation intéressante de l'attribut id. Il est utilisé à l'intérieur de la balise et utilisé pour identifier la forme pour les éléments à l'extérieur des limites de sorte qu'ils seront inclus dans les autres champs dans le formulaire.
Id :
1) Il est utilisé pour identifier l'élément HTML à travers le Modèle d'Objet de Document (via Javascript ou en forme avec CSS).
2) Id devrait être unique dans la page.
Le nom correspond à l'élément de formulaire et précise ce qui est posté sur le serveur.
Exemple :
ID que j'ai utilisé pour identifier de manière unique un élément.
Nom est utilisé dans les formes. quand même u soumettre un formulaire. et si vous n'avez pas donner n'importe quel nom, rien ne sera soumis.
Et les seuls que le nom de l'attribut va sortir.
Basés sur des expériences personnelles et selon le W3 Schools description pour les attributs:
ID est un Attribut Global et s'applique à pratiquement tous les éléments de HTML. Il est utilisé pour identifier de manière unique les éléments sur la page Web, et sa valeur est surtout accessible à partir de l'interface (généralement à l'aide de JavaScript ou jQuery).
nom est un attribut qui est utile à des éléments spécifiques (tels que les éléments de formulaire, etc) en HTML. Sa valeur est la plupart du temps envoyés sur le serveur pour traitement.
https://www.w3schools.com/tags/ref_attributes.asp