- PR -

formのonsubmitについて

1
投稿者投稿内容
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-06 20:16
今日は、優子です。

<html:form action="/delOrBuy" onsubmit="return false;">
<html:submit property="button1" value="取り消し" onclick="cartincheck(buyGoodsForm)"/>
</html:form>

とjsp上に書いている時、"取り消し"のボタンを押した時にjavaScriptのcartincheckのファンクション(とあるバリデーションチェック)を実行するようにしているのですが、その中でfalseをreturnする事なく、チェックを通過した時、delOrBuyのアクションを呼ぶようにしています。
しかし、そのアクション内でbutton1のパラメータを取得しようとすると(request.getParameter("button1")),nullが返ってきてしまいます。

onsubmit="return false;をonsubmit="return true;にすれば取得できるのですが、それだとjavaScriptのチェックに引っかかっても必ずdelOrBuyのアクションを呼んでします。

javaScriptのチェックに引っかかった場合はアクションを実行せずに、チェックを通過して呼ばれたアクションの中でbutton1のパラメータを取得するにはどうすればよろしいのでしょうか?ご意見のほど、よろしくお願い致します。


開発環境
pc win2000
j2sdk1.4.2_05
tomcat 5.0
struts 1.1
tak3
ベテラン
会議室デビュー日: 2004/04/15
投稿数: 80
お住まい・勤務地: 菜の花・銀杏
投稿日時: 2004-10-06 23:05
cartincheck(buyGoodsForm)をbooleanを返す関数にして
<html:form action="/delOrBuy" onsubmit="return false;">

<html:form action="/delOrBuy" onsubmit="return cartincheck(buyGoodsForm);">
とするのは、どうでしょうか?
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-07 10:02
tak3さま、お返事ありがとうございます。
ご指示頂いた方法で試すと上手くいきました。ありがとうございました。
(<html:submit property="button1" value="取り消し" onclick="cartincheck(buyGoodsForm)"/> のonclick="cartincheck(buyGoodsForm)もはずすと上手くいきました。)


そこで追加の質問なのですが、

<html:form action="/delOrBuy" onsubmit="return cartincheck(buyGoodsForm);">
<html:submit property="button1" value="取り消し"/>
<html:submit property="button2" value="注文" onclick="buycheck(buyGoodsForm)"/>
</html:form>

のように、別のボタンを追加し、さらにチェックするfunctionが異なるケースではどのようにすればよろしいのでしょうか?
ご指示頂いた<html:form action="/delOrBuy" onsubmit="return cartincheck(buyGoodsForm);">の方法では一つのfunctionしか呼べないことになるので、別のボタンがsubmitしたい時にはまた別のfunctionを呼びたい、としたいのです。

ご意見をよろしくお願い致します。

tak3
ベテラン
会議室デビュー日: 2004/04/15
投稿数: 80
お住まい・勤務地: 菜の花・銀杏
投稿日時: 2004-10-07 13:24
DispatchActionなら、当初の
<html:form action="/delOrBuy" onsubmit="return false;">
でも困らないんじゃないですか?

http://www.h7.dion.ne.jp/~matsu/feature/struts/advanced/lookup_dispatch_action.html

あとは、JavaScriptはフラグを使えば処理の切り分けができますよね。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-10-07 16:03
tak3さん。お返事ありがとうございます。
javaScriptの中身を変更して、フラグを設定することで問題は解決しました。
DispatchActionも時間のある時に応用してみようと思います。

ご意見頂き、本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)