【问题标题】:Fill a "form" and "submit" using javascript automatically without pressing "submit" [duplicate]使用javascript自动填写“表格”和“提交”而不按“提交”[重复]
【发布时间】:2014-06-12 22:47:08
【问题描述】:

我查看了不同的线程,但找不到合适的解决方案。
我想制作一个伪造的 html 文件,它会自动填写表单并在浏览器加载时提交。

maksreciever 两个输入字段由我给出的值填充,但我需要按提交。
如果可能的话,如果输入字段的值是不可见的,那就太好了。谢谢。

<html xmlns="http://www.w3.org/1999/xhtml">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <head>
    <script type="text/javascript">
      function postReq() {
        var frm = document.getElementById('post_req');
        if (frm) {
          frm.submit();
        }
      }
    </script>

  <body onload="postReq()">
    <form method=POST name=exampleform id='post_req'
       action="/ex/makfoer.php">
      <input name=maks type=hidden value="2" /> 
      <input name=reciever type=hidden value="otto" />
      <input type=submit />
    </form>
  </body>

</html>

【问题讨论】:

  • 你应该关闭你的&lt;head&gt;标签
  • 你的代码没问题。究竟是什么不工作?
  • 我必须按“提交”才能进行活动。但我想要的是无需按下即可自动完成。

标签: javascript html forms


【解决方案1】:

在你的情况下,你可以使用:

document.exampleform.submit();

说明:

exampleform 是表单的名称,因此您可以通过以下方式获取表单:

document.exampleform

现在您只需激活表单的.submit() 方法。您不需要提交按钮即可提交。所以一切都被隐藏了。

【讨论】:

    【解决方案2】:

    1.关闭你的&lt;head&gt;标签。

    2.nametype等属性的值使用引号。

    3.不需要提交按钮,尤其是因为您不希望自己的表单可见

    <html xmlns="http://www.w3.org/1999/xhtml">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
      <head>
        <script type="text/javascript">
          function postReq() {
            var frm = document.getElementById('post_req');
            if (frm) {
              frm.submit();
            }
          }
        </script>
      </head>
    
      <body onload="postReq()">
        <form method="POST" name="exampleform" id='post_req'
           action="/ex/makfoer.php">
          <input name="maks" type="hidden" value="2" /> 
          <input name="reciever" type="hidden" value="otto" />
        </form>
      </body>
    
    </html>
    

    【讨论】:

    • 我想看到提交按钮,即使它没有任何意义,因为这样做的目的是原始 html 的伪造,只是为了让用户感到困惑,我想要输入“maks "'s 和 "reciever" 的值被隐藏而不是按钮本身。
    【解决方案3】:

    如果您想在没有 jQuery 的情况下执行此操作,请使用 window.onload 事件处理程序:

    <head>
    <script type="text/javascript">
      function postReq() {
        var frm = document.getElementById('post_req');
        if (frm) {
          frm.submit();
        }
      }
      window.onload = postReq;
    </script>
    </head>
    

    window.onload 在加载整个页面(包括外部脚本、图像等)时被触发,而document.onload 在页面的 DOM 被解析和加载后被触发。

    【讨论】:

    • 它不起作用,我希望输入隐藏不可见
    • 对不起,我看错了,看到的是“可见”而不是“不可见”。同样正如 abl 所指出的,您应该关闭 head 标签。编辑了我的答案。
    • 是的,我有,但没有区别 :(
    • 当我将代码复制到计算机上的文件中时,它可以工作。你已经激活了javascript,对吧?您在浏览器或控制台中是否遇到任何错误?
    • 是的,javascript 已激活,我没有收到任何错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多