2013-10-30 82 views
1

我有一個表單,我想提交。完成後,將頁面重定向到另一個頁面。但目前它不適合我。如何在表單提交上重定向頁面

<form name="myname" method="post" action="actionurl" onsubmit="gotonext()"> 

function gotonext(){ 
      var portalpath = window.location.pathname;        
      var myredirect = portalpath +"?uP_fname=msu/survey&amp;command=display&amp;sid=162"; 
      alert(myredirect); 
      window.location.href = myredirect; 
     } 

因此,警報顯示我正在尋找的正確url。表單將數據提交給正確的actionurl。不工作的是重定向。

上,我可能會錯誤任何想法?

+0

'當前頁面加載actionurl(這是另一個頁面)'?? –

+0

actionurl是門戶中的基礎URL。它只是返回到門戶頁面而不是重定向。我試圖簡化這個問題。對不起,如果混淆,會編輯。 – user1689274

+1

@塞巴斯蒂安http://stackoverflow.com/questions/2383401/javascript-setting-window-location-href-versus-window-location –

回答

2

好吧,這有點複雜。問題是提交表單時,客戶端基本上已經開始通過表單的action屬性中指定的URL處理新的請求。

一個通常的解決方法是使用AJAX提交表單,然後觸發在AJAX請求的回調重定向。這很容易,但有明顯的限制:AJAX請求不會跨域。

另一種方法(可能是你的情況很有用)如下:

  • 與表單的頁面上創建一個隱藏的iframe。
  • 設置窗體的target屬性是iframe的名字
  • 設置onload事件處理這個iframe和觸發器在此處理重定向。

這裏是proof of concept

+0

+1的好老IFRAME招 –

+0

有類似的想法打我昨晚,我要麼做這樣的事情,或將鏈接添加到所需的位置作爲頁面上的隱藏元素,然後觸發jQuery的點擊,或使用Ajax ...感謝您的答案。感謝@ RokoC.Buljan尋求幫助 – user1689274

相關問題