web-dev-qa-db-ja.com

JavascriptコードによるHTMLフォームの送信ボタンをクリックする

私はWEBのプロブラミングについてあまり知りませんので、詳細が足りない場合はお気軽にお尋ねください。

頻繁にアクセスする特定のWebサイトがあり、ユーザーがアクセスするたびにログインする必要があります。このWebサイトのログインページでは、自動的にログインするユーザースクリプトを書き留めようとしています。

フォームフィールドに何とか記入しましたが、JavaScriptで送信ボタンをクリックする方法がわかりません。以下は、元のログインコードの要約バージョンです。このコードでこの送信ボタンを自動的にクリックするにはどうすればよいですか?

<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();

または、onclickハンドラーと同じコードを使用します。

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

(ただし、onclickハンドラーは一種のばかげて記述されています:document.forms['loginForm']thisに置き換えることができます。)

12
Matt Ball

一般にフォームを送信する通常の方法は、krtekの回答で説明されているように、フォーム自体でsubmit()を呼び出すことです。

ただし、何らかの理由で送信ボタンを実際にクリックする必要がある場合(コードは送信ボタンの投稿された名前/値などによって異なります)、次のように送信ボタン自体をクリックできます。

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

できるよ :

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

ただし、これはボタンのonclickアクションを呼び出さないため、手動で呼び出す必要があります。

フォームにアクセスするには、nameではなく、フォームのidを使用する必要があることに注意してください。

6
krtek