web-dev-qa-db-fra.com

Comment soumettre un formulaire en utilisant javascript?

J'ai un formulaire avec l'ID theForm qui a la div suivante avec un bouton d'envoi à l'intérieur:

<div id="placeOrder" 
     style="text-align: right; width: 100%; background-color: white;">
     <button type="submit" 
             class='input_submit' 
             style="margin-right: 15px;" 
             onClick="placeOrder()">Place Order
     </button>
</div>

Lorsque vous cliquez dessus, la fonction placeOrder() est appelée. La fonction change le code innerHTML de la div ci-dessus en "traitement en cours ..." (le bouton d'envoi a donc disparu) 

Le code ci-dessus fonctionne, mais le problème est que je ne parviens pas à envoyer le formulaire! J'ai essayé de mettre ceci dans la fonction placeOrder():

document.theForm.submit();

Mais ça ne marche pas.

Comment puis-je obtenir le formulaire à soumettre?

135
Nate

Définissez l'attribut name de votre formulaire sur "theForm" et votre code fonctionnera.

108
Andrew Hare

Vous pouvez utiliser...

document.getElementById('theForm').submit();

... mais ne pas remplace la innerHTML. Vous pouvez masquer le formulaire puis insérer un processing ...span qui apparaîtra à sa place.

var form = document.getElementById('theForm');

form.style.display = 'none';

var processing = document.createElement('span');

processing.appendChild(document.createTextNode('processing ...'));

form.parentNode.insertBefore(processing, form);
79
alex
document.getElementById("form1").submit();

Cela fonctionne parfaitement dans mon cas.

vous pouvez également l'utiliser en mode fonctionnel.

function formSubmit()
{
     document.getElementById("form1").submit();
} 
26
ChintanThummar
document.forms["name of your form"].submit();

ou

document.getElementById("form id").submit();

Vous pouvez essayer n'importe quoi .. cela fonctionnera certainement ..

10
Aruna
//Take form name as "theForm"
//Example:   
         ## ----Html code----- ##    
      <form method="post" action="" name="theForm">
            <button onclick="placeOrder()">Place Order</button>
      </form>

            ## -------javascript code------ ##

        function placeOrder(){
        document.theForm.action="yourUrl";
        document.theForm.submit();
        }
3
Chandan Gupta

C'est un ancien message, mais je vais laisser ce que je fais pour soumettre le formulaire sans utiliser la balise name à l'intérieur du formulaire:

HTML

<button type="submit" onClick="placeOrder(this.form)">Place Order</button>

JS

function placeOrder(form){
    form.submit();
}

J'espère que cette solution pourra aider quelqu'un d'autre. TQ

3
SkyClasher

Si votre formulaire n'a pas d'identifiant mais qu'il porte un nom de classe tel que theForm, vous pouvez utiliser l'instruction ci-dessous pour l'envoyer:

document.getElementsByClassName("theForm")[0].submit();
2
Bimal Jha

vous pouvez utiliser le code ci-dessous pour soumettre le formulaire à l'aide de Javascript;

document.getElementById('FormID').submit();
0
Abhijeet Navgire

Je suis venu avec une résolution facile en utilisant un formulaire simple caché sur mon site web avec les mêmes informations que les utilisateurs connectés avec. Exemple Si vous souhaitez qu'un utilisateur soit connecté à ce formulaire, vous pouvez ajouter quelque chose comme ceci au formulaire ci-dessous.

<input type="checkbox" name="autologin" id="autologin" />

pour autant que je sache, je suis le premier à cacher un formulaire et à le soumettre en cliquant sur un lien. Il y a le lien soumettant un formulaire caché avec les informations. Pas sûr à 100% si vous n'aimez pas les méthodes de connexion automatique sur votre site web avec des mots de passe assis sur une zone de texte masquée du mot de passe de formulaire .....

Bon alors voici le travail. Disons que $siteid est le compte et $sitepw est le mot de passe.

Commencez par créer le formulaire dans votre script php si vous n'aimez pas le langage HTML, utilisez des données minimales, puis indiquez la valeur dans un formulaire masqué. Je viens d'utiliser une valeur php et echo dans n'importe où je veux pref à côté du bouton de formulaire que vous ne pouvez pas le voir.

Formulaire PHP à imprimer

$hidden_forum = '
<form id="alt_forum_login" action="./forum/ucp.php?mode=login" method="post" style="display:none;">
    <input type="text" name="username" id="username" value="'.strtolower($siteid).'" title="Username" />
    <input type="password" name="password" id="password" value="'.$sitepw.'" title="Password" />
</form>';

PHP et lien pour soumettre le formulaire

<?php print $hidden_forum; ?>
<pre><a href="#forum" onClick="javascript: document.getElementById('alt_forum_login').submit();">Forum</a></pre>
0
AgeofTalisman