Question

Ici, ça dit que c'est requis

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.

Était-ce utile?

La solution

L'exigence est uniquement de normes. Il est parfaitement possible de faire ce que vous voulez sur une page et de ne pas suivre les normes. Les choses peuvent ne pas afficher ou fonctionner correctement si vous faites cela, mais ils le feront probablement. Le but est de les suivre, et l'idée est que si vous les suivez, votre page toujours travailler; Vous n'avez pas à vous soucier de quoi que ce soit.

Oui, le formulaire est obligatoire Pour avoir un attribut d'action dans HTML4. S'il n'est pas défini, le navigateur utilisera probablement la même méthode que de lui fournir une chaîne vide. Tu devrais vraiment définir action="" qui est parfaitement valide HTML4, suit les normes et obtient le même résultat exact.

Dans HTML5, vous pouvez réellement spécifier une action sur le bouton Soumettre lui-même. S'il n'y en a pas, il utilise l'action du formulaire et si cela n'est pas défini, il est par défaut à la chaîne vide (Remarque Vous ne pouvez pas définir explicitement l'action sur une chaîne vide dans HTML5).

Autres conseils

On dirait La spécification HTML4 l'exige. Je soupçonne que certains navigateurs font ce que vous voulez "rendre les choses plus faciles". Je ne recommande pas de le compter. Puisque vous êtes dans un comportement indéfini, un navigateur pourrait raisonnablement décider de ne rien faire lorsque le formulaire est soumis sans action.

Vous pouvez obtenir le comportement que vous souhaitez en suivant la spécification en laissant l'action vide (car c'est relatif, 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 d'action et de formaction, Si spécifié, doit avoir une valeur qui est une URL non vide valable potentiellement entourée d'espaces. [L'accent ajouté

Fait intéressant, cela signifie dans HTML5, <form action=""> n'est pas valide, mais il n'est pas clair si un formulaire sans action est tenu de fonctionner (soumettre à la page actuelle).

Techniquement, c'est une violation de la spécification HTML 4, mais tous les navigateurs publieront à l'origine de la réponse si aucune action n'est spécifiée. Je suis d'accord que ce n'est pas une idée intelligente de compter sur elle, mais cela fonctionne.

Edit: Comme il m'a été souligné que cette question est étiquetée comme HTML 5:Dans HTML 5, ils répertorient l'attribut d'action comme n'est plus requis: http://www.w3schools.com/html5/att_form_action.asp qui est conforme aux spécifications HTML 5.

// alerte de résurrection de filetage

Pour s'étendre sur la réponse d'Animuson ...

Si après tout le bouton formaction et former action Les attributs ont été évalués, si "l'action" évaluer comme "chaîne vide", puis à partir de la section HTML5.2 4.10.21.3 Le point 8 déclare:

Si l'action est la chaîne vide, laissez l'action être l'URL du document du document de formulaire.

En ce qui concerne la soumission du formulaire, ce que vous vouliez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top