• ベストアンサー

サブミットの違い

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で飛ばせるでしょううか?

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.6

<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」にとびますので。

ratsbane
質問者

お礼

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

ratsbane
質問者

補足

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

その他の回答 (5)

  • kurus
  • ベストアンサー率52% (12/23)
回答No.5

JavaScriptが動いているということですが、 JavaScriptのエラーはステータスバーに表示されますか? その場合、submitしている文に問題があります。

ratsbane
質問者

お礼

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

ratsbane
質問者

補足

エラーは出てません。

noname#19197
noname#19197
回答No.4

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

ratsbane
質問者

補足

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

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

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

ratsbane
質問者

補足

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

noname#19197
noname#19197
回答No.2

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

ratsbane
質問者

補足

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

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

JSPはあんまり関係ない気もしますが・・ 1.AタグはFORM部品ではないので、FORMタグ内にあっても関係ありません。hrefへ遷移するだけ。 2.Aタグのhrefは削除   onclick内でFORMをsubmitさせるようする

ratsbane
質問者

お礼

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

関連するQ&A