Est-il correct d'avoir plusieurs formulaires HTML avec le même nom?
J'ai une raison valable pour vouloir en faire, mais c'est une longue histoire, je vais donc oublié d'essayer d'expliquer pourquoi et il suffit de demander si c'est OK pour le faire.
J'ai une page où je dois avoir des formes multiples avec le même nom, mais je ne veux le formulaire dont le bouton envoyer est sur d'être soumis. Par exemple, les éléments suivants pourraient être sur ma page:
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
text
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
text
<form name="input" action="" method="get">
Username: <input type="text" name="user" />
<input type="submit" value="Submit" />
</form>
Est-ce acceptable?
source d'informationauteur Nate
Vous devez vous connecter pour publier un commentaire.
Concernant le HTML 4.01 spécication, vous pouvez utiliser
form
éléments avec le mêmename
attribut, car il n'y a pas de demande d'unicité sur eux. Faire défait le but de ces attributs. Ils sont conçus pour rendre plus facile à se référer à des formes de script côté client: si vous avez<form name=foo>
puisdocument.foo
se réfère à la forme.Il n'est pas ce qui se passe quand même
name
attribut est utilisé, mais quels sont les navigateurs semblent faire est de retourner un tableau. Dans votre exemple,document.foo
serait un 3-élément de tableau, avecdocument.foo[0]
cours de la première forme. Mais ce n'est pas utile, puisque (en supposant que il n'y a pas d'autres formes dans le document), vous pouvez utiliserdocument.forms[0]
avec un bien définis.La
name
attribut lui-même est dépassée pourform
éléments (mais pas pour les champs de formulaire, où il continue à être indispensable). Le HTML 4.01 spec clause surformulaire
dit:“
name
= cdata [IC]Cette noms d'attribut de l'élément de sorte qu'il peut être appelé à partir de feuilles de style ou des scripts. Remarque. Cet attribut a été inclus pour des raisons de compatibilité ascendante. Les Applications doivent utiliser les
id
attribut permet d'identifier les éléments.”Dans le HTML5 ébauches, même les règles formelles interdire l'utilisation de la même
name
attribut. Le HTML5 clause sur lename
l'attributformulaire
dit que sa valeur “doit être unique parmi lesform
éléments dans leforms
collection qu'il est, le cas échéant”. C'est une confusion de la formulation, mais il est plus sûr de supposer qu'il doit être unique au sein de laform
les éléments d'un document.Oui, il est permis seulement
id
's doit être unique. Je ne le recommande pas, cependant, pourquoi même vous mettre dans une position pour être confondu en bas de la route.La
name
attribut définit ce que chaque champ de formulaire élément sera représenté comme lors de l'envoi vers le serveur.Il est également ok en HTML5. Seul le nom doit être unique à l'intérieur de la forme elle-même.
Voir les docs: "La valeur ne doit pas être la chaîne vide, et la valeur doit être unique parmi les éléments de formulaire dans la collection de formulaires qu'il est, le cas échéant."
Lorsque l'utilisateur clique sur un bouton d'envoi, seul ce formulaire seront prises dans l'action. Encore, il serait préférable de les nommer, de sorte que vous n'êtes pas confondre 🙂