繁体   English   中英

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

[英]jQuery - Open Links In New Tab form submit

此方法基本上在新窗口中打开了一个新网页,其中Url出现在e.result参数中,在这里我想在“新选项卡”中打开同一窗口,而不是在新窗口中。

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

任何建议将不胜感激

不幸的是,您无法通过JavaScript设置此属性。 浏览器根据其设置来决定是在新窗口中打开链接还是在新选项卡中打开链接。

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

因此,您的代码将类似于:

$("#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对象或结果页面的网址:

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

要么

window.open(result, '_blank');

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

现在我做了一个jQuery,它在延迟一秒钟后在提交按钮表单上的新选项卡中打开动作URL,此功能就像一个符咒。

这是我的点击页面页面链接

我的代码:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM