287 votes

Comment puis-je soumettre un formulaire en utilisant JavaScript ?

J'ai un formulaire avec l'id theForm qui contient le div suivant 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>

Lorsqu'on clique dessus, la fonction placeOrder() est appelé. La fonction change le innerHTML du div ci-dessus en "processing ...". (le bouton d'envoi a donc disparu).

Le code ci-dessus fonctionne, mais maintenant le problème est que je n'arrive pas à soumettre le formulaire ! J'ai essayé de mettre ce code dans la section placeOrder() fonction :

document.theForm.submit();

Mais ça ne marche pas.

Comment puis-je faire en sorte que le formulaire soit soumis ?

4 votes

Je suppose que vous avez un <form> à un endroit quelconque de votre page.

2 votes

Je ne vois pas de <form> dans le code.

1 votes

Que voulez-vous dire par : La fonction modifie l'innerHTML du div ci-dessus pour qu'il devienne "processing ...". (donc le bouton submit a disparu). Pourriez-vous partager cette logique ? Par ailleurs, si vous avez un bouton d'envoi (quelque part en bas avec name=submit), la fonction theform.submit() ne fonctionnera pas. Veuillez clarifier votre question en ajoutant la balise <form> comme vous l'avez fait dans votre code. Vous pouvez utiliser jsfiddle.net

14voto

Vous pouvez utiliser le code ci-dessous pour soumettre le formulaire en utilisant JavaScript :

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

14voto

Jay Nagar Points 51
<html>

    <body>

        <p>Enter some text in the fields below, and then press the "Submit form" button to submit the form.</p>

        <form id="myForm" action="/action_page.php">
          First name: <input type="text" name="fname"><br>
          Last name: <input type="text" name="lname"><br><br>
          <input type="button" onclick="myFunction()" value="Submit form">
        </form>

        <script>
            function myFunction() {
                document.getElementById("myForm").submit();
            }
        </script>

    </body>
</html>

6voto

Chandan Gupta Points 49

HTML

<!-- change id attribute to name  -->

<form method="post" action="yourUrl" name="theForm">
    <button onclick="placeOrder()">Place Order</button>
</form>

JavaScript

function placeOrder () {
    document.theForm.submit()
}

4voto

Bimal Jha Points 151

Si votre formulaire n'a pas d'id, mais qu'il a un nom de classe comme theForm, vous pouvez utiliser la déclaration ci-dessous pour le soumettre :

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

1voto

AgeofTalisman Points 25

J'ai trouvé une solution facile en utilisant un simple formulaire caché sur mon site web avec les mêmes informations que celles utilisées par les utilisateurs pour se connecter. Exemple : Si vous voulez qu'un utilisateur soit connecté sur ce formulaire, vous pouvez ajouter quelque chose comme ceci au formulaire de suivi 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. Voilà le lien qui soumet un formulaire caché avec les informations. Ce n'est pas sûr à 100 % si vous n'aimez pas les méthodes de connexion automatique sur votre site Web avec des mots de passe se trouvant dans une zone de texte de mot de passe de formulaire caché...

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

Faites d'abord le formulaire dans votre script PHP. Si vous n'aimez pas le HTML dans ce formulaire, utilisez des données minimales et puis echo dans la valeur d'un formulaire caché. Je me contente d'utiliser une valeur PHP et de l'insérer où je veux, en priorité à côté du bouton du formulaire, car on ne peut 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 vers le formulaire de soumission

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

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