- ベストアンサー
submitについて
皆様、はじめまして。 この度javascriptを利用したサイトを作ろうと頑張っておりましたがつまずいたのでご質問させていただきます。 一つのformに二つのsubmitを作成して、javascriptを利用してそれぞれのsubmit先(action)を変えることは可能でしょうか? 尚、送信する際はどちらのsubmitでも全データを送信したいです。 現在の状況は、 JSPからJAVAサーブレットへデータを送ろうとしてます。
- みんなの回答 (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>
その他の回答 (1)
- PED02744
- ベストアンサー率40% (157/390)
素直に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> みたいに(ごめん未確認)すると、切り替えられますが。
お礼
たしかに正直、二つに分けた方がソースが綺麗な上に 効率がいいようですね・・・ 貴重なご意見ありがとうございました。
お礼
javascript内でactionを切り替えて飛ばすことが出来ました。。がやはり効率が悪いですね。。。 もう少し考えて効率のいい方法を見つけ出すことにします。 ご協力ありがとうございました。