web-dev-qa-db-fra.com

une balise comme bouton d'envoi?

Salut, j'essaye d'obtenir "une" balise comme bouton d'envoi. J'ai trouvé un code quelque part sur le Web. Mais ça n'a pas marché.

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

Existe-t-il un code pour répondre à mes besoins?

32
theepan

Donnez à form un id, puis:

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

La meilleure pratique serait probablement de donner à votre lien un id aussi, et de vous débarrasser du gestionnaire d'événements:

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

Essayez ce code:

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

Mais les utilisateurs avec JavaScript désactivé ne pourront pas envoyer le formulaire, vous pouvez donc ajouter le code suivant:

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

Supposons que le formulaire soit le parent direct que vous pouvez faire:

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

Sinon, vous pouvez accéder via l'attribut de nom de formulaire comme ceci:

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

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

12
amosrivera

Essayez quelque chose comme ci-dessous

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

Ceci est une amélioration de @ComFreek ans:

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

Donc, cela ne déclenchera pas d'action et rechargera votre page. Surtout si vous développez avec un framework avec SPA.

0
Diego Graziano