如何在表单提交上重定向页面

时间:2013-10-30 21:33:54

标签: javascript forms redirect

我有一份表格,我想提交。完成后将页面重定向到另一个页面。但是目前它对我不起作用。

<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;
        } 

因此警报显示我正在寻找的正确网址。表单将数据提交给正确的actionurl。什么是无效的是重定向。

关于我可能出错的地方的任何想法?

1 个答案:

答案 0 :(得分:2)

嗯,这有点复杂。问题是提交表单时,客户端基本上已经开始按表单的action属性中指定的URL处理新请求。

一种常用的解决方法是使用AJAX提交表单,然后在该AJAX请求的回调中触发重定向。这更容易,但有明显的局限性:AJAX请求不会跨域。

另一种方法(在您的情况下可能有用)如下:

  • 使用表单在页面上创建隐藏的iframe。
  • 将表单的target属性设置为该iframe的名称
  • 在此iframe上设置onload事件处理程序,并在此处理程序中触发重定向。

这是proof of concept