電子書籍の厳選無料作品が豊富!

皆様、はじめまして。

この度javascriptを利用したサイトを作ろうと頑張っておりましたがつまずいたのでご質問させていただきます。

一つのformに二つのsubmitを作成して、javascriptを利用してそれぞれのsubmit先(action)を変えることは可能でしょうか?
尚、送信する際はどちらのsubmitでも全データを送信したいです。

現在の状況は、
JSPからJAVAサーブレットへデータを送ろうとしてます。

A 回答 (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>
    • good
    • 0
この回答へのお礼

javascript内でactionを切り替えて飛ばすことが出来ました。。がやはり効率が悪いですね。。。

もう少し考えて効率のいい方法を見つけ出すことにします。

ご協力ありがとうございました。

お礼日時:2006/08/22 00:48

素直に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>
みたいに(ごめん未確認)すると、切り替えられますが。
    • good
    • 0
この回答へのお礼

たしかに正直、二つに分けた方がソースが綺麗な上に
効率がいいようですね・・・

貴重なご意見ありがとうございました。

お礼日時:2006/08/22 00:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!