有选择地POST到新的浏览器窗口

时间:2011-07-05 15:31:24

标签: javascript jquery html asp.net-mvc-3

我有一个表单,其中有三个提交按钮,用于回发不同场景的数据。

每个人都对控制器上的不同操作进行POST,但对于其中一个操作,我需要POST回到新的浏览器窗口。

这可能吗?我知道我可以在表单中添加target="_blank",但这会为所有提交按钮打开一个新窗口......

更新

目前,我已经尝试了几种方法来实现这一点,但我完全失败了,我目前的非工作代码如下所示:

$("input[type=submit]").click(function (e) {
    var form = $("form.filter-execution-form");
    if ($(this).hasClass("run-report"))
        $("form.filter-execution-form").attr("target", "_blank");
    else
        $("form.filter-execution-form").removeAttr("target");
});

有没有人有任何想法让这个工作?

谢谢,
基隆

4 个答案:

答案 0 :(得分:1)

可能有很多不同的方法可以做到这一点。我能想象的最简单的方法是在第一个窗口中按下提交按钮时,打开一个新窗口,其中包含一个URL(在同一个域中),其中包含所需的表单(可能需要注意弹出窗口阻止程序) 。然后,将现有表单中输入的数据传输到新窗口中的表单。在新页面中调用javascript函数,告诉它提交表单。

答案 1 :(得分:1)

查看此帖子 - 使用相同的方法动态添加您想要的提交按钮的属性(即将其添加到您想要添加此支持的提交按钮的onclick事件中)

How do I add target="_blank" to a link within a specified div?

答案 2 :(得分:0)

我能想到这样做的最佳方式(可能不是最好的方法)就是使用JavaScript。

单击按钮时,阻止它执行任何操作,而是运行一些javascript,在空白页面上打开一个新窗口,其中包含隐藏的表单,使用javascript将值从表单传输到新的弹出窗体,提交弹出表格&用原始页面做某事来表明采取了行动。

答案 3 :(得分:0)

在表单集target="postWindow"或任何其他名称相同的名称中,它始终会发布到该弹出窗口(如果未关闭)。