- ベストアンサー
サブミットの違い
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で飛ばせるでしょううか?
- みんなの回答 (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」にとびますので。
その他の回答 (5)
- kurus
- ベストアンサー率52% (12/23)
JavaScriptが動いているということですが、 JavaScriptのエラーはステータスバーに表示されますか? その場合、submitしている文に問題があります。
お礼
すいませんでした。 皆様ありがとうございました。 全くもって、私のミスでした。 document.frm.submit; となってました。 document.frm.submit(); にしました。 お時間とらせてしまい、誠に申し訳ありませんでした。
補足
エラーは出てません。
setDataは、その別プロジェクトとまったく同じjavascriptなのですか?
補足
いいえ。 同じように記述してるつもりなだけです。。 strutsを使ってる方 <html:link href="#" onclick="サブミットするjavascript">○○○ </html:link> 今作ってるもの <a href="JavaScript:サブミットするjavascript">○○○</a> という感じです。 変換されたhtmlの違いはhref="#"かどうかくらいだと思ってました。
- STICKY2006
- ベストアンサー率29% (1536/5269)
<a href ="JavaScript:setData()"> と。<a href>タグの中からJavaScriptを動作させたい場合はこうなります。
補足
やってみましたが、javascriptは動きますが、サブミットされてないようです。 javascriptでalertは出るので、動いてる確認は取れてます。 window.document.フォーム.submit(); とやってるんですけどね・・・。
1.Aタグの遷移は必ずGETです。 2.javascriptでformをsubmitします。 window.forms[0].submit();
補足
>Aタグの遷移は必ずGETです。 ということは、別プロジェクトのストラッツを使ってるjspはなぜpostになるのか疑問ですが、ありがとうございます。 submitしてますが、どうにも動いてくれませんです。
- asahina02
- ベストアンサー率47% (95/202)
JSPはあんまり関係ない気もしますが・・ 1.AタグはFORM部品ではないので、FORMタグ内にあっても関係ありません。hrefへ遷移するだけ。 2.Aタグのhrefは削除 onclick内でFORMをsubmitさせるようする
お礼
jspに関係あると思ったのは、strutsを使ってる別プロジェクトのjspでは <a href="#" onclick="サブミットするjavascript"> で、postで動作してくれてたからです。 Aタグのhrefを削除ということは <a onclick="サブミットするjavascript"> リンク文字 </a> のようにすることでしょうか? これだと、jspを開いたときにリンク文字にカーソルをあてても指型にかわらず(下線がない)、onclickが発生してくれませんでした。さきほども試しましたがダメでした。
お礼
alertは出るんですが、submitされないみたいです。 alertをsubmitの後に書いても出ました。 なぜsubmitされないのでしょうか・・・
補足
それを実は実装してたんですけど。 微妙に違うかもしれないので、もう一度確認します。 <form name="frm" action="XXAction" method="post"> <a href="JavaScript:setData()">○○</a> </form> <script language="Javascript"> function setData(){ alert("OK"); document.frm.submit(); } </script> みたいな実装です。