web-dev-qa-db-fra.com

Cliquer sur le bouton soumettre d'un formulaire HTML par un code Javascript

Je ne sais pas grand chose sur le probramming WEB, alors n'hésitez pas à me demander si je manque des détails.

Il y a un certain site Web que je visite très fréquemment et qui oblige les utilisateurs à se connecter à chaque fois qu'ils visitent. Pour la page de connexion de ce site, j'essaie d'écrire un script utilisateur qui me connectera automatiquement.

J'ai réussi à remplir les champs du formulaire, mais je ne sais pas comment cliquer sur le bouton soumettre par JavaScript. Ce qui suit est une version condensée du code de connexion d'origine. Comment puis-je cliquer automatiquement sur ce bouton d'envoi dans ce code?

<div id="start">
    <div id="header">
        <div id="login">
            <form id="loginForm" name="loginForm" method="post" action="#">
                // ...
                <input type="submit" id="loginSubmit" onclick="changeAction('submitInput','loginForm');document.forms['loginForm'].submit();" value="Log in" />
                // ...
            </form>
        </div>
    </div>
</div>
18
hkBattousai
document.getElementById('loginSubmit').submit();

ou, utilisez le même code que le gestionnaire onclick:

changeAction('submitInput','loginForm');
document.forms['loginForm'].submit();

(Bien que ce gestionnaire onclick soit un peu bêtement écrit: document.forms['loginForm'] pourrait être remplacé par this.)

12
Matt Ball

La manière habituelle de soumettre un formulaire en général est d'appeler submit () sur le formulaire lui-même, comme décrit dans la réponse de krtek.

Cependant, si vous devez cliquer sur un bouton d'envoi pour une raison quelconque (votre code dépend du nom/de la valeur du bouton d'envoi publié ou quelque chose), vous pouvez cliquer sur le bouton d'envoi lui-même comme ceci:

document.getElementById('loginSubmit').click();
33
mercurial

Tu peux faire :

document.forms["loginForm"].submit()

Mais cela n'appellera pas l'action onclick de votre bouton, vous devrez donc l'appeler à la main.

N'oubliez pas que vous devez utiliser le name de votre formulaire et non le id pour y accéder.

6
krtek