【问题标题】:Different form ACTION depending on button pressed不同形式的动作取决于按下的按钮
【发布时间】:2010-05-02 11:31:12
【问题描述】:

我有一个表单,我希望 ACTION 字段根据按下的按钮而有所不同。

例如,如果我按下按钮 A 或按钮 B,表单可能会被不同的 PHP 文件处理。

我该怎么做?

谢谢!

【问题讨论】:

    标签: javascript html forms


    【解决方案1】:

    如果你不想用Javascript,但要用HTML5,你可以使用formaction属性:

    <!DOCTYPE html>
    <html>
      <body>
        <form>
          <input type="submit" formaction="http://firsttarget.com" value="Submit to first" />
          <input type="submit" formaction="http://secondtarget.com" value="Submit to second" />
        </form>
      </body>
    </html>
    

    【讨论】:

    • 远景的最佳解决方案。
    • 非常感谢!完美运行.. 我们也可以使用 formtarget="_blank" 打开新标签
    【解决方案2】:

    在您的按钮中,您可以设置表单的操作,使用 form property,例如在按钮 a 上:

    this.form.action = "fileA.php";
    

    另一方面:

    this.form.action = "fileB.php";
    

    您可以像这样在外部安装它:

    document.getElementById("buttonA").onclick = function() { 
      document.getElementById("myForm").action = "fileA.php";
    };
    

    或者,如果您使用的是 jQuery 之类的库:

    $(function() {
      $("#buttonA").click(function() {
        $(this).closest("form").attr('action', 'fileA.php');
      });
    });
    

    【讨论】:

    • 我可以结合使用 POST 和 GET 方法吗?例如,我想传递一个包含字段的 URL,但也包含表单元素的名称。
    • @posfan12 - 您一次只能通过一种方法提交,但您可以使用参数序列化并发布到 url。我并没有关注您为什么需要同时拥有两者,但客户端发送的数据也更多,通常不是一个好主意。
    • 您可以同时拥有 POST 和 GET。当您使用 '?' 向 url 添加参数时和 '&' 它们将成为 GET,如果您还定义了 POST 参数,它们将在同一个请求中出现在 POST 中。
    【解决方案3】:

    将操作字段留空:

    <form action ="" method="post" name="form1">
    <input type ="submit" onclick="calA();"/>
    <input type = "submit" onclick="calB"/>
    </form>
    
    <script>
    function calA()
    {
     document.form1.action ="a.php";
    }
    function calB()
    {
    document.form1.action = "b.php";
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多