• 締切済み

submit時に違うページに飛びたい

アンケートに答えて頂いた方がsubmitを押すと、 ありがとうメッセージのページに飛ぶということがやりたいのです。 尚、メール送信に問題はないのですがページが移動しない状況です。 どなたか、私の間違いを教えていただけますか? <script language="JavaScript"> <!-- function move(url){ window.location=a.html; } --></script> <form action="mailto:info@○○.co.jp" method="post" enctype="text/plain" name="form1" onSubmit="javascript:move()"> </form> と打ちまして、その後 function move(){ window.location("a.html"); } と変えてもダメでした。 これがだめなら「ありがとう」とアラートと出して置いて、このページろリロードする方法でも良いです。 どなたか教えていただけますか? 宜しくお願い致します!!!

  • dicha
  • お礼率70% (12/17)

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

<input type=button value="メール" onclick=' this.form.submit(); window.location="a.html"; '>

dicha
質問者

補足

ありがとうございます! 皆様のご回答により、少しずつおかしい店がわかってきました。 小生、3分割にされたフレームで作業しております。 topとleftは固定でmain内でページを移動しております。 targetを何にするかで、エラー動作が変わってくることに気づきました。 blankやparent等を使用すると動作に問題がないのです。(しかし、target=mainできいてくれないと意味がないのですが…。) <input type=button value="送信" onclick='this.form.submit();window.location.href="a.html",target="main";'> だと、メールのみ作動 <input type=button value="送信" onclick='this.form.submit();window.location.href="a.html",target="parent";'> だと新しいウィンドウ(真っ白)が立ち上がり、a.htmlはmainフレーム内にでます。 <input type=button value="送信" onclick='this.form.submit();window.location.href="a.html",target="self";'> も、parentの時と同じ。 過去ログを見て、 <a href="a.html" target="main" onClick="document.form1.submit()">送信</a> というのも試してみましたが、上記とほとんど同じような動きでした。 フレーム指定がうまくいってないのだと思います。

  • feininger
  • ベストアンサー率41% (74/180)
回答No.2

単純にこういう感じではどうですか? <form action="mailto:info@***.jp" method="post" onSubmit="window.location.href('http://www.google.co.jp/')"> <input type=submit value="メール"> </form>

dicha
質問者

補足

ありがとうございます。 head内にスクリプトを入れるのを止めて再度考えてみました。 上記で頂いたものでためしたところ、できませんでした。 そして <form action="mailto:info@○○.com" method="post" enctype="text/plain" name="form1" onSubmit="MM_goToURL('self','a.html');return document.MM_returnValue" > とやりましたところ、リンクに飛ぶのですがメールが送れなくなってしまいました。 これはmailtoとMM_goToURLが同時には使えないということなのでしょうか…。

noname#199778
noname#199778
回答No.1

質問文をコピペして試してみましたが、スクリプトの内容で window.location=a.html; この部分のURLが文字列として認識されていないために、aという定義されていないオブジェクトを取りに行ってエラーになっているようです。 もしこれが元ソースそのままでしたら、この部分が問題のように思います。 window.location.href="a.html"; のように、URLをきちんと引用符で括って、文字列として記述してみてはいかがでしょうか。 見当違いでしたら、ごめんなさい。

dicha
質問者

補足

ありがとうございます。 はじめに投稿しましたソースにいただいたものを貼りましたが…。 だめみたいです。 この解答をいただいた時に「そうか!」と納得したのですが、これ以上に中身に問題があるのでしょう。

関連するQ&A

  • onSubmit=の後ろは複数可能でしょうか?

    <SCRIPT language=JavaScript><!-- function check() { ・ ・ ・ <FORM action="mailto:××@××.com method="post" enctype="text/plain" name="myform" onSubmit="return Check()"> で未記入のものを確認してアラートを出すようにしています。 この機能にフォーム送信後、指定ページへ移動するようにしたいのですが、それは 可能ですか?となると別ページへの移動は function Start(){ setTimeout('window.location.href="他のページのファイル名.htm"',5000); } // --> </SCRIPT> ・ ・ ・ <FORM action="mailto:××@××" method="post" enctype="text/plain" name="myform" onSubmit="Start()"> になると思うのですが、onSubmit=の後に"return Check()"と "Start()"というのは両方使えるものなのでしょうか?;でつないでも正しく動いてくれません。ページ移動が無理なら、"return Check()"を使う、 sent=0 function Check(){ if(sent==0){ sent=1; return true; }else{ if(confirm("1度送信された可能性があります。")){ return true; }else{ return false; } } } かなと思ったのですが、これだと未記入の場合のアラートが出なくなります。 もう行き詰まってしまいました・・。 解決策をご存知の方、ぜひお願いします!

  • JavaScriptでページを一度だけリロード

    とあるページにアクセスした際、JavaScript(jQuery)を使って一度だけページをリロードしたいと思っております。 <script language="JavaScript"><!-- function reload() { if (window.name != "test") { location.reload(); window.name = "test"; } } // --></script> 上記のような記述で試みたのですが、リロードしてくれません。 他に対応できる方法がございましたら、ご教授いただけますと幸いです。 以上、よろしくお願い致します。

  • 別なページにジャンプさせたい

    ボタンをクリックすると指定のページに飛ぶようにしたいのですが、 <html> <head> <script language="JavaScript"> function jump(){ location.href="index.html"; } </script> </head> <body> <form onSubmit="jump()"> <input type="submit"> </form> </body> </html> でも <html> <head> <script language="JavaScript"> function jump(){ location.href="index.html"; } </script> </head> <body> <form> <input type="submit" onClick="jump()"> </form> </body> </html> でも動きません。(そのページを表示したままです) <body onload="jump()">にしたときは正常にジャンプできるので、クリックのイベントが拾えていないと思うのですが、どのように記述すればいいのでしょうか。 よろしくお願いいたします。

  • ブラウザの「戻る」ボタンを押した時にリロードさせる

    ブラウザの「戻る」ボタンを押して前のページに戻った時に1回だけページを リロードさせたいのですが、IEでは下記のようにすれば上手く出来ました。 <script type="text/javascript"> <!-- window.onunload = function(){location.reload();} --> </script> しかしながら、上記では他のブラウザ(Firefox・Opera・Safai・Google Chrome等)では リロードされません。 全てのブラウザで上手くリロードさせる方法はないでしょうか。 宜しくお願い致します。

  • Javascriptを勉強中でメールフォームを作っているのですが、

    Javascriptを勉強中でメールフォームを作っているのですが、 function check(){ if(document.form1.namae.value==""){ alert("お名前を入力してください。"); return false; } else{ return true; } } で名前が空白の時送信ボタンを押した時に警告メッセージが出るようにしようと思っています。 ボタンには以下のように書いています。 <form name="form1" action="mailto:mail@address" method="post" enctype="text/plain" onsubmit="check()"> そうすると警告は出ますが、処理を続行してメールも送れてしまいます。 教科書を見ると <form name="form1" action="mailto:mail@address" method="post" enctype="text/plain" onsubmit="return check()"> となっているのでそうすると問題ないのですが、なぜreturnを入れないといけないのかよくわかりません。 check()の中ですでにfalseかtrueの値が出ているのでreturnが要らないと思ったのですが・・ 初心者なのでよくわかっていません。 お願いいたします。

  • Netscape で submit() を複数起動できない

    以前に教わった方法で、submit() を使って別ウィンドウに結果を表示させる Javascript を書きました。 IE では、できたのですが、NN(Netscape Communicator 4.7) では以下の Javascript が起動しません。 というか、最後の form3.submit() のみ起動します。submit() の間に alert(); を入れておくと 3 つのウィンドウが開くので、動くことは 動いているようなのですが...。なぜでしょう? --------ここから(ソースの一部) ---------- <SCRIPT LANGUAGE="JavaScript"> <!-- function OpenWin(){ document.form1.submit(); document.form2.submit(); document.form3.submit(); } // --> </SCRIPT> <form name="PapyrusForm" method="POST" action=""> <input type="text" name="searchword" size="60" maxlength="256"><BR> <input type="button" name="Search" value=" 検索 " onClick="OpenWin()"> </FORM> <!-- =========================================== --> <FORM ACTION="/cgi-bin/searchlist1.pl" target="window1" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form1"> </FORM> <FORM ACTION="/cgi-bin/searchlist2.pl" target="window2" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form2"> </FORM> <FORM ACTION="/cgi-bin/searchlist3.pl" target="window3" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form3"> </FORM>

  • java:ウィンドウリサイズ拡大時にリロードさせる

    よろしくお願いいたします。 こちらのページを参考に、 http://www.openspc2.org/reibun/javascript/specia … <script Language="JavaScript"> window.onresize = rebuild; function rebuild(){ location.reload();} </script> 上記のように記述して 「ウィンドウをリサイズしたらリロードする」ことはできたのですが、 「ウィンドウサイズを大きくした時だけリロードして、小さくした時はリロードしない」 と指定することはできるでしょうか? また、もう一点、 「ウインドウサイズを現在開いているサイズより大きくしたとき、 かつ、ウィンドウの高さが800px以上のとき、〇〇させる」 としたい時どのように書けば良いでしょうか? 〇〇の部分は、リロードやjQueryの挙動などを書きます。 ご存知の方おられましたら、お教えいただけましたらと思います。 どうぞよろしくお願いいたします。

  • AJAXでのリロードに関して

    AJAXでのリロードに関して 教えて下さい。 あるページを一定の時間でリロードしたいと考えています。 その際に、javascript を使用すれば、以下のような記述で何分か単位で 自動リロードが可能ですが、それをAJAXにて実現するにはどのように記述 すれば良いでしょうか??? ***** javascript の場合 <TITLE>ページをリロードする方法</TITLE> <SCRIPT TYPE="text/javascript"> <!-- var timer = "300000"; //指定ミリ秒単位 function ReloadAddr(){ window.location.reload(); //ページをリロード } setTimeout(ReloadAddr, timer); //--> </SCRIPT> よろしくお願いします。

    • ベストアンサー
    • AJAX
  • submitで特定の情報だけを本文にするには?

    FORMで、SUBMITを使ってメールを送るSCRIPTの場合、送信する本文を指定されたVALUEだけにすることはできないのでしょうか? 下のようなスクリプトを書いています(以前の回答より引用しています) <script> function iSubmit() { var adress = document.myFORM.adress.value; document.myFORM.action="mailto:"+adress; document.myFORM.submit(); } </script> <FORM name="myFORM" method="post" str enctype="text/plain"> <INPUT type="text" NAME="adress"><BR> <INPUT type="text" NAME="mailtext"><BR> <INPUT type="button" VALUE="アドレス送信" onClick="iSubmit()"><BR> </FORM> submitの場合、単純に&BODY=としただけでは本文に指定出来ず困っています。 出来れば、本文に書きこまれる "mailtext="の部分も削除したいのですが、良いアイデアはないでしょうか? <A HREF="mailto:~">で出来ないかと思ったのですが、その場合ユーザが書きこんだデータを取って来れない様な気がするので、挫折しました。 自分なりに調べたのですが、わかりません。どなたか宜しくお願い致します。

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。