Décidément, il n'y a pas de solution avec du HTML pur pour soumettre un formulaire avec une a
balise link ( ). Le HTML standard n'accepte que des boutons ou des images. Comme l'ont dit d'autres collaborateurs, on peut simuler l'apparence d'un lien à l'aide d'un bouton, mais je suppose que ce n'est pas le but de la question.
IMHO, je crois que la solution proposée et acceptée ne fonctionne pas.
Je l'ai testé sur un formulaire et le navigateur n'a pas trouvé la référence au formulaire.
Il est donc possible de le résoudre en utilisant une seule ligne de JavaScript, en utilisant this
object, qui fait référence à l'élément sur lequel on clique, qui est un nœud enfant du formulaire, qui doit être soumis. Il en this.parentNode
va de même pour le nœud de formulaire. Après, il suffit d'appeler la submit()
méthode sous cette forme. Il n'y a pas de recherche nécessaire à partir du document entier pour trouver le bon formulaire.
<form action="http://www.greatsolutions.com.br/indexint.htm"
method="get">
<h3> Enter your name</h3>
First Name <input type="text" name="fname" size="30"><br>
Last Name <input type="text" name="lname" size="30"><br>
<a href="#" onclick="this.parentNode.submit();"> Submit here</a>
</form>
Supposons que j'entre avec mon propre nom:
J'ai utilisé l' get
attribut de méthode de formulaire car il est possible de voir les bons paramètres dans l'URL à la page chargée après l'envoi.
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
Cette solution s'applique évidemment à toute balise qui accepte l' onclick
événement ou un événement similaire.
this
est un excellent choix pour récupérer le contexte avec une event
variable (disponible dans tous les principaux navigateurs et à partir d'IE9) qui peut être utilisée directement ou passée comme argument à une fonction.
Dans ce cas, remplacez la ligne par a
tag par la ligne ci-dessous, en utilisant la propriété target
, qui indique l'élément qui a déclenché l'événement.
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>