仅在按下特定提交按钮时才将表单提交到新窗口?

时间:2012-04-02 13:28:29

标签: javascript jquery forms

我有一个表单,上面有几个不同的提交按钮,所有这些按钮都使用相同的帖子数据做不同的事情。

让我们说,为简单起见,表格看起来像这样:

<form method="post">
  <input type="hidden" name="ids" value="1,2,3,4" />
  <input type="submit" id="picking" name="picking" value="Picking" />
  <input type="submit" id="shipping" name="shipping" value="Shipping" />
  <input type="submit" id="invoice" name="invoice" value="Invoice" />
</form>

当表单提交给自己并且我按下提交按钮的服务器端时,从POST数据构建一个URL,然后执行PHP重定向到我需要去的地方。这很好。

但是,我正在寻找将其数据发布到新窗口的表单,但仅在单击“发票”时。这排除了向表单添加target="_blank",因为其他2个按钮也会提交到新页面。

我也不能将表单分成3种不同的形式,因为数据比上面的要复杂得多,而且很多都是由用户输入的。

有没有办法使用JavaScript / JQuery来做到这一点?如果是的话,我会从哪里开始?

由于

2 个答案:

答案 0 :(得分:4)

单击发票时,您是否可以在表单中添加目标空白?:

$("#invoice").click(function(){
  $('#form_id').attr('target', '_blank');
});

或:

$(document).on("click","#invoice",function(){
      $('#form_id').attr('target', '_blank');
    });

答案 1 :(得分:0)

尝试将点击处理程序添加到正确的提交按钮。

$('#invoice').on('click', function(){
    //doStuff
});

这将允许您控制#invoice的操作而不影响其他人。