Quelle est la différence entre les attributs id
et name
? Ils semblent tous deux avoir le même objectif de fournir un identifiant.
Je voudrais savoir (en particulier en ce qui concerne les formulaires HTML) si l'utilisation des deux est nécessaire ou encouragée pour quelque raison que ce soit.
html
attributes
yogibear
la source
la source
Réponses:
L'
name
attribut est utilisé lors de l'envoi de données dans une soumission de formulaire. Différents contrôles répondent différemment. Par exemple, vous pouvez avoir plusieurs boutons radio avec desid
attributs différents , mais identiquesname
. Lors de la soumission, il n'y a qu'une seule valeur dans la réponse - le bouton radio que vous avez sélectionné.Bien sûr, il y a plus que cela, mais cela vous fera certainement réfléchir dans la bonne direction.
la source
id
c'est avec quoi votre frontend (CSS, JS) fonctionne, tandis quename
c'est ce que votre serveur reçoit et peut ensuite traiter. C'est essentiellement ce que dit la réponse de Greeso.Utilisez des
name
attributs pour les contrôles de formulaire (tels que<input>
et<select>
), car il s'agit de l'identificateur utilisé dans l' appelPOST
ouGET
qui se produit lors de la soumission du formulaire.Utilisez des
id
attributs chaque fois que vous devez adresser un élément HTML particulier avec CSS, JavaScript ou un identifiant de fragment . Il est également possible de rechercher des éléments par nom, mais il est plus simple et plus fiable de les rechercher par ID.la source
name
etid
du tout. L'identifiant identifie de manière unique un élément HTML particulier sur la page. L'name
attribut d'un élément de formulaire HTML, en revanche, n'a pas à être unique, et ne l'est souvent pas, comme avec les boutons radio ou les pages avec plusieurs<form>
éléments. Il est traditionnel 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 y oblige.Voici un bref résumé:
id
est utilisé pour identifier l'élément HTML via le modèle d'objet de document (via JavaScript ou stylisé avec CSS).id
devrait être unique dans la page.name
correspond à l' élément de formulaire et identifie ce qui est renvoyé au serveur .la source
Voir ce http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
REMARQUE: l'attribut "nom" pour certaines balises comme
<a>
n'est pas pris en charge dans HTML5.la source
name
est important pour les<input>
balises dans une<form>
soumission car les paramètres sont utilisés dans le HTTP, etid
n'est qu'un identifiant uniqueLa façon dont j'y pense et l'utilise est simple:
id est utilisé pour CSS et JavaScript / jQuery (doit être unique dans une page)
Le nom est utilisé pour la gestion des formulaires en PHP lorsqu'un formulaire est soumis via HTML (doit être unique dans un formulaire - dans une certaine mesure, voir le commentaire de Paul ci-dessous)
la source
Tag ID - utilisé par CSS, définit une instance unique d'un div, d'une étendue ou d'autres éléments. Apparaît dans le modèle Javascript DOM, vous permettant d'y accéder avec divers appels de fonction.
Balise de nom pour les champs - Ceci est unique par formulaire - à moins que vous ne fassiez un tableau que vous souhaitez passer au traitement PHP / 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 le DOM ou certaines restrictions peuvent s'appliquer (vous ne pouvez pas utiliser .innerHTML, par exemple, si je me souviens bien).
la source
Généralement, on suppose que le nom est toujours remplacé par id . Cela est vrai, dans une certaine mesure, mais pas pour les champs de formulaire et les noms de trame , pratiquement parlant. Par exemple, avec les éléments de formulaire, l'
name
attribut est utilisé pour déterminer les paires nom-valeur à envoyer à un programme côté serveur et ne doit pas être éliminé.Browsers do not use id in that manner
. Pour être sûr, vous pouvez utiliser les attributs name et id sur les éléments de formulaire. Donc, nous écririons ce qui suit:Pour garantir la compatibilité, il est judicieux d'avoir des valeurs d'attribut name et id correspondantes lorsque les deux sont définies. Cependant, soyez prudent: certaines balises, en particulier les boutons radio, doivent avoir des valeurs de nom non uniques, mais nécessitent des valeurs d'ID uniques. Encore une fois, cela devrait faire référence au fait que l'id n'est pas simplement un remplacement pour le nom; ils ont un objectif différent. En outre, ne négligez pas l'approche à l'ancienne, un examen approfondi des bibliothèques modernes montre un tel style de syntaxe utilisé à des fins de performances et de facilité à certains moments. Votre objectif doit toujours être en faveur de la compatibilité.
Désormais, dans la plupart des éléments, l'attribut name a été déconseillé au profit de l'attribut id plus omniprésent. Cependant, dans certains cas, forme particulièrement les champs (
<button>
,<input>
,<select>
et<textarea>
), la vie d'attribut name parce qu'il continue d'être nécessaire pour définir la paire valeur de nom pour la soumission du formulaire. De plus, nous constatons que certains éléments, notamment les cadres et les liens, peuvent continuer à utiliser l'attribut name car il est souvent utile pour récupérer ces éléments par leur nom.Il y a une distinction claire entre id et nom. Très souvent, lorsque le nom continue, nous pouvons définir les mêmes valeurs. Cependant, l'id doit être unique, et le nom dans certains cas ne devrait pas - pensez aux boutons radio. Malheureusement, l'unicité des valeurs id, bien que détectée par la validation du balisage, n'est pas aussi cohérente qu'elle devrait l'être. L'implémentation CSS dans les navigateurs stylisera les objets qui partagent une valeur id; ainsi, nous ne pouvons pas détecter les erreurs de balisage ou de style qui pourraient affecter notre JavaScript jusqu'à l'exécution.
Ceci est tiré du livre JavaScript-
The Complete Reference by Thomas-Powell
la source
name
doit être le même (le code côté serveur ne se soucie pas de ce qui a été soumis), mais leid
doit être différent (car il doit être unique dans toute la page).name
est déconseillé pour les cibles de liens et non valide en HTML5. Il ne fonctionne plus au moins dans la dernière version de Firefox (v13). Remplacer<a name="hello">
par<a id="hello">
La cible n'a pas besoin d'être une
<a>
balise, elle peut être<p id="hello"
> ou<h2 id="hello">
etc. ce qui est souvent un code plus propre.Comme d'autres postes le disent clairement,
name
est toujours utilisé (nécessaire) dans les formulaires. Il est également toujours utilisé dans les balises META.la source
la source
Ce lien a des réponses à la même question de base, mais en gros, id est utilisé pour l'identification des scripts et le nom est pour le côté serveur.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
la source
name Vs id
Nom
<button>, <form>, <fieldset>, <iframe>, <input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>, <meta>, <param>
id
la source
name
attributs utilisés dans les éléments de style. Je suppose que ce n'est pas valide?L'ID d'un élément d'entrée de formulaire n'a rien à voir avec les données contenues dans l'élément. Les ID servent à accrocher l'élément avec JavaScript et CSS. L'attribut name, cependant, est utilisé dans la requête HTTP envoyée par votre navigateur au serveur en tant que nom de variable associé aux 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, cela ne changera rien dans l'en-tête HTTP. Cela facilitera simplement son accrochage avec CSS et JavaScript.
la source
Si vous n'utilisez pas la propre méthode d'envoi du formulaire pour envoyer des informations à un serveur (et que vous le faites à la place à l'aide de javascript), vous pouvez utiliser l'attribut name pour attacher des informations supplémentaires à une entrée - plutôt comme l'associer à une valeur d'entrée masquée, mais semble plus propre car il est intégré à l'entrée.
Ce bit fonctionne toujours actuellement dans Firefox, mais je suppose qu'à l'avenir, il pourrait ne pas être autorisé à passer.
Vous pouvez avoir plusieurs champs de saisie avec la même valeur de nom, tant que vous ne prévoyez pas de soumettre à l'ancienne.
la source
Basé sur des expériences personnelles et selon la description des écoles W3 pour les attributs:
L'ID est un attribut global et s'applique à pratiquement tous les éléments en HTML. Il est utilisé pour identifier de manière unique les éléments de la page Web, et sa valeur est principalement accessible à partir du frontend (généralement via JavaScript ou jQuery).
nom est un attribut utile à des éléments spécifiques (tels que des éléments de formulaire, etc.) en HTML. Sa valeur est principalement envoyée au backend pour traitement.
https://www.w3schools.com/tags/ref_attributes.asp
la source
Voici une utilisation intéressante de l'attribut id. Il est utilisé dans la balise et utilisé pour identifier le formulaire pour les éléments en dehors des limites afin qu'ils soient inclus dans les autres champs du formulaire.
la source
Id: 1) Il est utilisé pour identifier l'élément HTML via le modèle d'objet de document (via Javascript ou stylisé avec CSS). 2) L'ID devrait être unique sur la page.
Le nom correspond à l'élément de formulaire et identifie ce qui est renvoyé sur le serveur. Exemple :
la source
L'ID est utilisé pour identifier de manière unique un élément.
Le nom est utilisé dans les formulaires. Bien que vous soumettiez un formulaire, si vous ne donnez aucun nom, rien ne sera soumis. Par conséquent, les éléments de formulaire ont besoin d'un nom pour être identifiés par des méthodes de formulaire comme "get or push".
Et ceux qui n'ont qu'un attribut de nom s'éteindront.
la source
Le
id
donnera un élément un identifiant, donc une fois que vous écrivez du vrai code, (comme JavaScript), vous pouvez utiliser l'id pour lire les éléments. C'estname
juste un nom pour que l'utilisateur puisse voir le nom de l'élément, je suppose.Exemple:
Est-ce utile? Faites-moi savoir s'il y a des problèmes.
la source
Il n'y a pas de différence littérale entre un identifiant et un nom.
Le nom est l'identifiant et est utilisé dans la requête http envoyée par le navigateur au serveur comme nom de variable associé aux données contenues dans l'attribut value de l'élément.
L'ID, d'autre part, est un identifiant unique pour le navigateur, le côté client et le formulaire JavaScript.
id est plus spécifiquement utilisé pour ajouter des attributs à des éléments uniques. Dans les méthodes DOM, Id est utilisé en Javascript pour référencer l'élément spécifique sur lequel votre action doit avoir lieu.
Par exemple:
La même chose peut être obtenue par l'attribut name, mais il est préférable d'utiliser id dans le formulaire et le nom pour les petits éléments de formulaire comme la balise d'entrée ou la balise select.
la source