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。不工作的是重定向。

关于我可能出错的地方有什么想法吗?

4

1 回答 1

2

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

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

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

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

是概念证明

于 2013-10-30T21:47:34.263 回答