2014-07-09 3 views
0

세 페이지가 있습니다. 페이지 -1은 제출 될 때 새 탭에서 페이지 2를 열어야하고 페이지 1은 페이지 3으로 리디렉션되어야하는 양식이 있습니다.양식 제출시 새 탭에서 새 페이지를 열고 원본 페이지를 리디렉션

바로 지금 제출을 클릭하면 새 탭에서 2 페이지가 열리지 만 이미 페이지 -2가 열려 있지 않으면 페이지 1이 리디렉션되지 않습니다. 페이지 -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"; 
    }); 
}; 

답변

0

당신은 단순히 버튼을 우측 HREF 및 대상에 대한 링크를 만들 수있는 뷰 템플릿에서

set에는 양식을 제출하는 추가 이벤트 수신기가 있습니다. 컨트롤러가 나중에 리디렉션 될 수 있습니다.

템플릿

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

이 양식을 제출되지만, 원래는 page_3하는 리디렉션되지있어

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

JS

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

컨트롤러. – dagarre

+0

원격 양식을 사용중인 양식입니까? 어느 쪽이든, 내 코드를 업데이트했습니다 –

+0

아니요, 리모컨이 아닙니다. 난 그냥 "document.location.href ="/ page_3 "; 추가하여 일하고 있어요 아직도. 리디렉션 컨트롤러에서 작동하지 않는 이유를 아직 확실하지 않지만이 해결 된 것 같아요. – dagarre

관련 문제