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 によって新しい要求の処理を開始します。

通常の回避策の 1 つは、AJAX を使用してフォームを送信し、その AJAX 要求のコールバックでリダイレクトをトリガーすることです。その方が簡単ですが、明らかな制限があります。AJAX リクエストはドメインを越えません。

別のアプローチ(あなたの場合に役立つかもしれません)は次のとおりです。

  • フォームを含むページに非表示の iframe を作成します。
  • フォームのtarget属性をその iframe の名前に設定します
  • onloadこの iframe にイベント ハンドラーを設定し、このハンドラーでリダイレクトをトリガーします。

これが概念実証です。

于 2013-10-30T21:47:34.263 に答える