こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

サブミットの違い

jspに
<form action="XXaction" method="post">
<a href="XXaction" onclick="setData()">○○△</a>
<input type="submit" value="○○" onclick="setData()">
</form>
のように記述してます。
(実際はonclickのjavascriptも実装してます)
ボタンを押すとpostとしてサブミットされるのに、
リンクをクリックするとgetでサブミットされます。
1.なぜgetになるのでしょうか?
2.どうしたらpostで飛ばせるでしょううか?

投稿日時 - 2006-06-22 13:55:07

QNo.2231269

暇なときに回答ください

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

<Script Language = "JavaSpcript">
function setData(){
    document.form.submit();
}
</Script>

<form name = "form" action = "XXaction" method = "post">
<a href = "JavaScript:setData()">
</form>


これでどうでしょうか。

windows.document.フォーム.submit

ですが、「form」にname属性でnameを付けてやらなければ指定できませんのであしからず。。。

ちなみに、actionの「XXaction」にとびますので。

投稿日時 - 2006-06-22 18:24:47

補足

それを実は実装してたんですけど。
微妙に違うかもしれないので、もう一度確認します。
<form name="frm" action="XXAction" method="post">
<a href="JavaScript:setData()">○○</a>
</form>
<script language="Javascript">
function setData(){
alert("OK");
document.frm.submit();
}
</script>
みたいな実装です。

投稿日時 - 2006-06-23 08:53:51

お礼

alertは出るんですが、submitされないみたいです。
alertをsubmitの後に書いても出ました。
なぜsubmitされないのでしょうか・・・

投稿日時 - 2006-06-23 09:28:33

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

JavaScriptが動いているということですが、
JavaScriptのエラーはステータスバーに表示されますか?

その場合、submitしている文に問題があります。

投稿日時 - 2006-06-22 16:34:57

補足

エラーは出てません。

投稿日時 - 2006-06-22 17:57:08

お礼

すいませんでした。
皆様ありがとうございました。
全くもって、私のミスでした。
document.frm.submit;
となってました。
document.frm.submit();
にしました。
お時間とらせてしまい、誠に申し訳ありませんでした。

投稿日時 - 2006-06-23 10:07:07

ANo.4

setDataは、その別プロジェクトとまったく同じjavascriptなのですか?

投稿日時 - 2006-06-22 15:41:53

補足

いいえ。
同じように記述してるつもりなだけです。。
strutsを使ってる方
<html:link href="#" onclick="サブミットするjavascript">○○○
</html:link>
今作ってるもの
<a href="JavaScript:サブミットするjavascript">○○○</a>
という感じです。
変換されたhtmlの違いはhref="#"かどうかくらいだと思ってました。

投稿日時 - 2006-06-22 15:45:36

ANo.3

<a href ="JavaScript:setData()">

と。<a href>タグの中からJavaScriptを動作させたい場合はこうなります。

投稿日時 - 2006-06-22 15:11:11

補足

やってみましたが、javascriptは動きますが、サブミットされてないようです。
javascriptでalertは出るので、動いてる確認は取れてます。
window.document.フォーム.submit();
とやってるんですけどね・・・。

投稿日時 - 2006-06-22 15:23:41

ANo.2

1.Aタグの遷移は必ずGETです。
2.javascriptでformをsubmitします。
window.forms[0].submit();

投稿日時 - 2006-06-22 15:02:50

補足

>Aタグの遷移は必ずGETです。
ということは、別プロジェクトのストラッツを使ってるjspはなぜpostになるのか疑問ですが、ありがとうございます。
submitしてますが、どうにも動いてくれませんです。

投稿日時 - 2006-06-22 15:26:26

ANo.1

JSPはあんまり関係ない気もしますが・・

1.AタグはFORM部品ではないので、FORMタグ内にあっても関係ありません。hrefへ遷移するだけ。

2.Aタグのhrefは削除
  onclick内でFORMをsubmitさせるようする

投稿日時 - 2006-06-22 14:23:46

お礼

jspに関係あると思ったのは、strutsを使ってる別プロジェクトのjspでは
<a href="#" onclick="サブミットするjavascript">
で、postで動作してくれてたからです。
Aタグのhrefを削除ということは
<a onclick="サブミットするjavascript">
リンク文字
</a>
のようにすることでしょうか?
これだと、jspを開いたときにリンク文字にカーソルをあてても指型にかわらず(下線がない)、onclickが発生してくれませんでした。さきほども試しましたがダメでした。

投稿日時 - 2006-06-22 15:04:26

あなたにオススメの質問