47 votes

une balise comme bouton d'envoi ?

Bonjour, j'essaie d'utiliser la balise "a" comme bouton d'envoi. J'ai trouvé un code quelque part sur le web. Mais il n'a pas fonctionné.

<a href="#" onclick="this.form.submit()">Submit</a>

Existe-t-il un code permettant de répondre à mon besoin ?

46voto

James Allardice Points 81162

Donnez à la form un id et ensuite :

document.getElementById("yourFormId").submit();

La meilleure pratique consisterait probablement à donner à votre lien une valeur id aussi, et se débarrasser du gestionnaire d'événements :

document.getElementById("yourLinkId").onclick = function() {
    document.getElementById("yourFormId").submit();
}

0 votes

@James Allardice Cela peut-il être réalisé en Jquery ?

40voto

ComFreek Points 14185

Essayez ce code :

<form id="myform">
  <!-- form elements -->
  <a href="#" onclick="document.getElementById('myform').submit()">Submit</a>
</form>

Mais les utilisateurs dont le JavaScript est désactivé ne seront pas en mesure de soumettre le formulaire, vous pouvez donc ajouter le code suivant :

<noscript>
  <input type="submit" value="Submit form!" />
</noscript>

17voto

amosrivera Points 11654

En supposant que le formulaire soit le parent direct, vous pouvez le faire :

<a href='#' onclick='this.parentNode.submit(); return false;'>submit</a>

Si ce n'est pas le cas, vous pouvez y accéder par l'intermédiaire de l'attribut de nom du formulaire, comme ceci :

<a href='#' onclick='document.forms["myform"].submit(); return false;'>submit</a>

Voir les deux exemples ici : http://jsfiddle.net/WEZDC/1/

1 votes

Ou utilisez closest() pour obtenir le formulaire le plus proche : <a href="#" onclick="this.closest('form').submit(); return false;">

7voto

Diego Graziano Points 61

C'est une amélioration de @ComFreek ans :

<form id="myform">
  <!-- form elements -->
  <a href="javascript:;" onclick="document.getElementById('myform').submit()">Submit</a>
</form>

Ainsi, l'action ne sera pas déclenchée et votre page ne sera pas rechargée. Surtout si vous développez avec un framework avec SPA.

1voto

Praveen Points 1358

Essayez quelque chose comme ci-dessous

 <a href="#" onclick="this.forms['formName'].submit()">Submit</a>

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