• ベストアンサー

<FORM> </FORM> の中に さらに <FORM> </FORM>があるときのSUBMITボタンについて

今、 <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <input type="SUBMIT" value="ボタン1"> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <input type="SUBMIT" value="ボタン2"> </FORM> </FORM> としていて、ボタン2を押すとbbb.aspに 飛んでほしいのでに、aaa.aspに飛んでしまいます。 こういう場合どのようにすればよいのでしょうか? それぞれのボタンは hidden の値をそれぞれの フォームの中の値を渡したいので どうしてもSubmitがいいのです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#159582
noname#159582
回答No.7

No.4の回答者_Leoですが、分かりにくかったと思いますので、 全ソースのサンプルを記載しますので、参考にして下さい。 No.6のyou111111さんと同じく、JavaScriptを使用しています。 下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。 本来のサイトが使用しているテキストボックス名は'MT'です。 ------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!---gooはEUCキャラクタを使っています---> <html> <head> <title>SAMPLE</title> <meta http-equiv="Content-Type" content="text/html;charset=EUC-JP"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script language="JavaScript" type="text/javascript"> <!-- //<クリックした時に実行される関数> //*** 英和辞書 function func1(form){ document.form1.MT.value =form.TXT.value; document.form1.submit(); } //*** サーチ function func2(form){ document.form2.MT.value = form.TXT.value; document.form2.submit(); } //--> </script> </head> <body> <!---実際に画面表示されるフォーム---> <form> <input type="text" name="TXT" value="Congratulation" size="40"><br> <input type="button" onClick="func1(this.form)" value="Eng-JP"> <input type="button" onClick="func2(this.form)" value="goo"> </form> <!-- 辞書用の仮想フォーム --> <form name="form1" method="GET" action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi"> <input type="hidden" name="MT"> <input type="hidden" name="sw" value="0"> </form> <!--- サーチ用の仮想フォーム ---> <form name="form2" method="GET" action="http://search.goo.ne.jp/web.jsp"> <input type="hidden" name="MT"> </form> </body> </html>

GBSGBS
質問者

お礼

おぉ~~、ありがとうございます!! 感謝です。

その他の回答 (6)

  • you111111
  • ベストアンサー率45% (20/44)
回答No.6

javascriptを使って <FORM METHOD="POST" Name="form1"> <input type="BUTTON" value="ボタン1" onclick="funcClick('aaa.asp');"> <input type="BUTTON" value="ボタン2" onclick="funcClick('bbb.asp');"> </FORM> ------------javascript------------- function funcClick(strTarget) { form1.action=strTarget; form1.submit(); } ではどうでしょう?

noname#4486
noname#4486
回答No.5

個別的製品の実装がどうこうというのもありますが、仕様に従った方が無難だとは思いますよ。皆さんおっしゃっていますが、form要素同士は入れ子(ネスト)にできません。 このソースを見るだに、専門のお仕事ではないですよね?されば、外道を極めてみるのも一興か・・・? うひひひひ

noname#159582
noname#159582
回答No.4

たぶん、Gooのトップページに似た形でしょうか。 参考にしたらどうでしょう。

参考URL:
http://www.goo.ne.jp/
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

皆さん書いておられるように<FORM>はネスト出来ませんので、分けましょう。 また、<INPUT TYPE=hidden VALUE=xxxx>をそれぞれの<FORM></FORM>の中におけば良いと思います。 <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <INPUT TYPE=hidden VALUE="xxxxx"> <input type="SUBMIT" value="ボタン1"> </FORM> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <INPUT TYPE=hidden VALUE="xxxxx"> <input type="SUBMIT" value="ボタン2"> </FORM>

noname#199778
noname#199778
回答No.2

すでに回答されていますが… もともとHTMLでは、form要素は入れ子にできない(form要素内に別のform要素を入れることはできない)仕様になっていますので、formが入れ子にならないように分けてやる必要があります。 先の方の回答にもあるように、formを分ける方法以外では、解決できないと思います。

  • yang_yang
  • ベストアンサー率31% (117/367)
回答No.1

こうしてください <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <input type="SUBMIT" value="ボタン1"> </FORM> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <input type="SUBMIT" value="ボタン2"> </FORM>

GBSGBS
質問者

お礼

やっぱり、そうするしかないのですね。 何かあるかなぁと思ってみたんですけど無駄でした。 ありがとうございました。

関連するQ&A