C'est une action vraiment nécessaire sur les formulaires?
Ici, il dit que c'est nécessaire
http://www.w3schools.com/tags/att_form_action.asp
mais je vois que les formes sont soumis, même si je ne spécifiez pas l'attribut d'action, et le formulaire est soumis à la page en cours qui est exactement ce que je veux.
- Remarque: Ne comptez pas sur w3schools à tous. Ils ne sont pas une source fiable.
- Toutefois, dans ce cas w3schools est correct sur le HTML 4 et HTML 5 de spécifications. En HTML 4, ils la liste si nécessaire (bien que la plupart des navigateurs fonctionnent toujours sans) et en html 5 de la liste est plus nécessaire: w3schools.com/html5/att_form_action.asp
- Si sa pertinents, vous pouvez faire de votre formulaire de soumission sur un iframe: stackoverflow.com/a/26380651/1695680 Donc ne pas briser votre formulaire de saisie de comportement et aussi de ne pas avoir à recharger la page.
- J'ai toujours utiliser Mozilla référence docs (Les gens qui font de Firefox), developer.mozilla.org/en-US/docs/Web/HTML/Element/form Son aussi facile que la préfixation 'mdn" dans vos recherches. Mais attention, la 'msdn vous amène à la Microsoft Docs qui sont tout aussi mauvais que le w3.
Vous devez vous connecter pour publier un commentaire.
Cette condition n'est par 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 s'afficher ou ne fonctionne pas correctement si vous le faites, mais ils seront susceptibles de. L'objectif est de les suivre, et l'idée est que si vous les suivez, votre page sera toujours travail; vous n'avez pas à vous soucier de quoi que ce soit.
Oui, la forme est nécessaire avoir un attribut action dans le HTML4. Si ce n'est pas définie, le navigateur va probablement utiliser la même méthode que de fournir une chaîne vide en elle. Vous devriez vraiment ensemble
action=""
qui est parfaitement valide HTML4, suit les normes, et permet d'obtenir le même résultat exact.En HTML5, vous pouvez spécifier une action sur le bouton soumettre lui-même. Si il n'y en a pas, il utilise la forme de l'action, et si ce n'est pas définie, la valeur par défaut est une chaîne vide (remarque vous ne pouvez pas définir de manière explicite l'action à une chaîne vide en HTML5).
action
etformaction
attributs de contenu, si spécifié, doit avoir une valeur qui est valide non vide URL potentiellement entouré par des espaces."Il ressemble HTML4, spec exige. Je soupçonne que certains navigateurs faire ce que vous voulez "faciliter les choses". Je ne recommande pas compter sur si. Puisque vous êtes dans un comportement indéfini, un navigateur peut raisonnablement décider de ne rien faire lorsque le formulaire est soumis à aucune
action
.Vous pouvez obtenir le comportement que vous voulez, tout en suivant la spécification en laissant l'action vide (puisqu'il est relatif, vide signifie que la page en cours):
Comme mentionné par bazmegakapa, la spec HTML5 ne semble pas exiger que le
action
l'attribut:Il est intéressant de noter, ce qui signifie en HTML5,
<form action="">
n'est pas valide, mais il n'est pas clair si un formulaire sans une action est nécessaire pour travailler (soumettre à la page en cours).Techniquement, c'est une violation de la spécification HTML 4, mais tous les navigateurs poste à l'expéditeur de la réponse, si aucune action n'est spécifié. Je suis d'accord c'est pas une bonne idée de s'appuyer sur elle, mais il ne fonctionne pas.
EDIT: Comme il a été souligné à moi que cette question est balisé en HTML 5:
En HTML 5 de la liste de l'attribut action comme n'étant plus nécessaires: http://www.w3schools.com/html5/att_form_action.asp qui est en conformité avec le HTML 5 spécifications.
//thread résurrection d'alerte
À étendre animuson de réponse...
Si après tout bouton
formaction
et la formeaction
attributs ont été évalués, si "l'action" encore évalue en tant que "chaîne vide", puis à partir de HTML5.2 spec section 4.10.21.3 point 8 membres:quand il s'agit de l'envoi du formulaire, qui est ce que tu voulais.
action
doit être un non-vide de l'URL.