46 votes

Faut-il vraiment agir sur les formulaires ?

Ici, il est dit que c'est nécessaire

http://www.w3schools.com/tags/att_form_action.asp

mais je vois que les formulaires sont soumis même si je ne spécifie pas d'attribut d'action, et le formulaire est soumis à la page actuelle, ce qui est exactement ce que je veux.

57voto

animuson Points 23184

L'exigence est seulement par normes . Il est parfaitement possible de faire ce que vous voulez sur une page sans respecter les normes. Il se peut que les choses ne s'affichent pas ou ne fonctionnent pas correctement si vous faites cela, mais il est probable qu'elles le feront. L'objectif est de les respecter, et l'idée est que si vous les suivez, votre page toujours travail ; vous n'avez pas à vous soucier de quoi que ce soit.

Oui, le formulaire est requis pour avoir un attribut d'action en HTML4. S'il n'est pas défini, le navigateur utilisera probablement la même méthode que celle consistant à lui fournir une chaîne vide. Vous devriez vraiment définir action="" qui est un HTML4 parfaitement valide, qui respecte les normes et qui permet d'obtenir exactement le même résultat.

En HTML5, vous pouvez en fait spécifier une action sur le bouton d'envoi lui-même. S'il n'y en a pas, il utilise l'action du formulaire et si celle-ci n'est pas définie, il prend par défaut la chaîne vide (notez que vous ne pouvez pas explicitement définir l'action sur une chaîne vide en HTML5).

16voto

Brendan Long Points 24372

On dirait que la spécification HTML4 l'exige . Je soupçonne que certains navigateurs font ce que vous voulez pour "faciliter les choses". Je ne recommande cependant pas de s'y fier. Puisque vous êtes dans un comportement indéfini, un navigateur pourrait raisonnablement décider de ne rien faire lorsque le formulaire est soumis sans aucun code action .

Vous pouvez obtenir le comportement que vous souhaitez tout en respectant les spécifications en laissant l'action vide (puisqu'elle est relative, vide signifie la page actuelle) :

<form action="" ...>

Comme mentionné par bazmegakapa, la spécification HTML5 ne semble pas nécessiter le action attribut :

Les attributs de contenu action et formaction, si spécifié doit avoir une valeur qui est une URL valide et non vide, potentiellement entourée d'espaces [c'est nous qui soulignons].

Il est intéressant de noter que cela signifie en HTML5, <form action=""> n'est pas valide, mais il n'est pas clair si un formulaire sans action est nécessaire pour fonctionner (soumettre à la page actuelle).

5voto

swannee Points 1177

Techniquement, il s'agit d'une violation de la spécification HTML 4, mais tous les navigateurs renvoient l'information à l'auteur de la réponse si aucune action n'est spécifiée. Je suis d'accord pour dire que ce n'est pas une bonne idée de s'y fier, mais cela fonctionne.

EDIT : Comme on m'a fait remarquer que cette question est étiquetée HTML 5 : Dans HTML 5, l'attribut action n'est plus requis : http://www.w3schools.com/html5/att_form_action.asp ce qui est conforme aux spécifications du HTML 5.

3voto

Neil Moss Points 3581

// alerte de résurrection du fil

Pour prolonger la réponse d'Animuson...

Si après tout le bouton formaction et forme action attributs ont été évalués, si "l'action" est encore évalue comme "chaîne vide", puis à partir de la section de la spécification HTML5.2 4.10.21.3 Le point 8 indique :

Si action est une chaîne vide, action est l'URL du document du formulaire. document du formulaire.

lorsqu'il s'agit de soumettre le formulaire, ce qui est ce que vous vouliez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X