【问题标题】:On form submit, open a new page in a new tab and redirect the original page在表单提交时,在新选项卡中打开一个新页面并重定向原始页面
【发布时间】:2014-07-09 20:52:35
【问题描述】:

我有三页。第 1 页有一个表单,提交时应在新选项卡中打开第 2 页,第 1 页应重定向到第 3 页。

现在,单击提交会在新选项卡中打开第 2 页,但它不会重定向第 1 页,除非我已经打开第 2 页。如果第 2 页已经打开并且我单击提交,则第 1 页将重定向到第 3 页。

我怎样才能让两者都发生?

在视图模板中:

%button.step1-button.submit{:onClick => "redirect();"} Get Started

在控制器中:

@form = FormSubmit.create(:name => name, :form => "/")
        respond_to do |format|
          format.html {redirect_to :page_2}
          format.js { render :action => "redirect()"}

在redirect.js中:

function pop_under2() {
  $('.step1-button').bind("click", function () {
    window.location.href = "http://localhost:3000/exit";
  });
};

【问题讨论】:

    标签: javascript jquery ruby-on-rails


    【解决方案1】:

    您可以简单地将按钮设置为带有右 ​​href 和目标集的链接,它具有一个额外的事件侦听器,用于提交表单。之后控制器可以重定向。

    模板

    %a.step1-button.submit.js-submit-form{href: "your_page2_url", target: "_blank"} Get Started
    

    控制器

    @form = FormSubmit.create(:name => name, :form => "/")
    redirect_to :page_3
    

    JS

    $(function(){
      $('.js-submit-form').on('click', function() {
        $(this).parent('form').submit();
      });
    }); 
    

    【讨论】:

    • 这是提交表单,但不会将原件重定向到 page_3。
    • 你使用的表单是远程表单吗?不管怎样,我更新了我的代码
    • 不,它不是遥控器。我通过添加“document.location.href =“/page_3”; 让它工作。仍然不确定为什么重定向在控制器中不起作用,但我认为这解决了它。
    猜你喜欢
    • 2011-06-25
    • 2017-08-08
    • 2012-01-15
    • 2016-01-15
    • 2017-01-05
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多