2013-10-30 49 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

相关问题