通过Javascript代码单击HTML表单的提交按钮

hkB*_*sai 19 javascript automation click submit button

我不太了解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>
Run Code Online (Sandbox Code Playgroud)

mer*_*ial 37

一般提交表单的常用方法是在表单本身上调用submit(),如krtek的回答中所述.

但是,如果由于某种原因需要实际单击提交按钮(您的代码取决于发布的提交按钮的名称/值等),您可以单击提交按钮本身,如下所示:

document.getElementById('loginSubmit').click();
Run Code Online (Sandbox Code Playgroud)


Mat*_*all 12

document.getElementById('loginSubmit').submit();
Run Code Online (Sandbox Code Playgroud)

或者,使用与onclick处理程序相同的代码:

changeAction('submitInput','loginForm');
document.forms['loginForm'].submit();
Run Code Online (Sandbox Code Playgroud)

(虽然那个onclick处理程序是一种愚蠢的写法:document.forms['loginForm']可以替换为this.)

  • .的document.getElementById( 'loginSubmit')提交(); ...错误:submit()不是函数...如果需要单击按钮,mercurial的答案是正确的. (5认同)

krt*_*tek 6

你可以做 :

document.forms["loginForm"].submit()
Run Code Online (Sandbox Code Playgroud)

但这不会调用onclick按钮的动作,因此您需要手动调用它.

请注意,您必须使用name表单而不是id访问表单.