jQuery - 在新标签表单中打开链接提交

时间:2012-01-25 13:21:14

标签: javascript jquery asp.net

此方法基本上在新窗口中打开一个新网页,其中Url有 e.result 参数,这里我想在New Tab中打开相同的窗口而不是在新窗口中。

        $("#formMain").attr("action", e.result); 
        $("#formMain").attr("method", "post");      
        $("#formMain").attr('target', '_blank');
        $("#formMain").submit();

任何建议都将受到高度赞赏

3 个答案:

答案 0 :(得分:2)

很遗憾,您无法从JavaScript设置此属性。浏览器根据其设置决定是在新窗口中打开链接还是新选项卡。

答案 1 :(得分:1)

一般来说,将表单提交给用户将看到的页面是不明智的,因为它可能导致多次提交(如果用户前进/后退,他们重新打开选项卡等)。由于您已经使用了jQuery,因此请使用$ .post()或$ .get()。 (参见http://api.jquery.com/jQuery.post/http://api.jquery.com/jQuery.get/)。位于e.result的脚本应该只处理表单提交(可能将内容保存到数据库中)并返回结果。然后,用户将看到基于该结果的单独页面。

所以你的代码看起来像:

$("#formMain").submit(function() {
    return false;
});

function submitForm(url)
    $.post(url, $("#formMain").serialize(), function(result) {
        window.open('resultPageURL&result='+encodeURIComponent(result), '_blank');
    });
}

submitForm(e.result);

显然结果的格式取决于您 - 如果您愿意,您可以轻松返回json对象或结果页面的url,使用:

try {
    var obj = $.parseJSON(result);
    window.open('resultPageURL&'+JSON.stringify(obj), '_blank');
} catch (e) {
    alert('Not a valid JSON result');
}

window.open(result, '_blank');

答案 2 :(得分:0)

我有一个来自客户的相同请求,客户希望在新选项卡中打开操作,我们成功地通过将target =“ _ blank”添加到表单属性来成功完成了这项工作,但是在提交表单后,我们遇到了另一个问题。第一次,但是当我们再次单击“提交”按钮时,在寻找解决方案后却没有再次打开购物车页面,我终于为我提出了解决方案。

现在我做了一个jquery,它在经过1秒钟的延迟后在提交按钮表单的新选项卡中打开动作url,此功能就像一个超级按钮。

这是我的点击页面Page Link

我的代码:

 jQuery(document).ready(function(){
jQuery('.pagefly-container form').on('submit',function(e){
setTimeout(function () { window.open('https://baaboo.shop/cart','_blank');},1000);});})