• ベストアンサー

submitについて

皆様、はじめまして。 この度javascriptを利用したサイトを作ろうと頑張っておりましたがつまずいたのでご質問させていただきます。 一つのformに二つのsubmitを作成して、javascriptを利用してそれぞれのsubmit先(action)を変えることは可能でしょうか? 尚、送信する際はどちらのsubmitでも全データを送信したいです。 現在の状況は、 JSPからJAVAサーブレットへデータを送ろうとしてます。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

たとえばform.actionを切り替える手もあります。 あんまりメリットがあるとも思えません。 飛び先は一つにして、与えられたデータをもとに 解釈するほうが良いと思いますが。 <script language=javascript> function submitFunc(f){ for (var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].name=="actionList" && f[i].checked==true){ f.action=f[i].value alert(f.action) return true; } } return false; } </script> <form action="c.htm" onSubmit="return submitFunc(this)"> <input type="radio" name="actionList" value="a.htm"checked >a.htm <input type="radio" name="actionList" value="b.htm">b.htm <input type="submit" value="送信"> </form>

kazu60
質問者

お礼

javascript内でactionを切り替えて飛ばすことが出来ました。。がやはり効率が悪いですね。。。 もう少し考えて効率のいい方法を見つけ出すことにします。 ご協力ありがとうございました。

その他の回答 (1)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

素直にFORMを2つ使った方が楽なんじゃないでしょうか。 というか、サーブレットなら飛ばし先は1つで、値でメソッドを変えるようにしたほうがいいんじゃないのかな~ って思うのはあさはかですか?(^_^;) <FORM ID="A" ACTION="./servlet/a.do"></FORM> <FORM ID="B" ACTION="./servlet/b.do"></FORM> だとして、 <SCRIPT> function switchAction(x){ var fm; if (x == 'a'){ fm = window.document.getElementById("A"); } else { fm = window.document.getElementById("B"); } fm.submit(); } </SCRIPT> みたいに(ごめん未確認)すると、切り替えられますが。

kazu60
質問者

お礼

たしかに正直、二つに分けた方がソースが綺麗な上に 効率がいいようですね・・・ 貴重なご意見ありがとうございました。

関連するQ&A