- ベストアンサー
<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がいいのです。
- みんなの回答 (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>
その他の回答 (6)
- you111111
- ベストアンサー率45% (20/44)
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(); } ではどうでしょう?
個別的製品の実装がどうこうというのもありますが、仕様に従った方が無難だとは思いますよ。皆さんおっしゃっていますが、form要素同士は入れ子(ネスト)にできません。 このソースを見るだに、専門のお仕事ではないですよね?されば、外道を極めてみるのも一興か・・・? うひひひひ
たぶん、Gooのトップページに似た形でしょうか。 参考にしたらどうでしょう。
- 参考URL:
- http://www.goo.ne.jp/
- arukamun
- ベストアンサー率35% (842/2394)
皆さん書いておられるように<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>
すでに回答されていますが… もともとHTMLでは、form要素は入れ子にできない(form要素内に別のform要素を入れることはできない)仕様になっていますので、formが入れ子にならないように分けてやる必要があります。 先の方の回答にもあるように、formを分ける方法以外では、解決できないと思います。
- yang_yang
- ベストアンサー率31% (117/367)
こうしてください <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>
お礼
やっぱり、そうするしかないのですね。 何かあるかなぁと思ってみたんですけど無駄でした。 ありがとうございました。
お礼
おぉ~~、ありがとうございます!! 感謝です。