WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ボタンのvalue値について

0:[投稿] 中村 [2003/12/15 10:52 ][環境:Windows2000 Tomcat4.1 Windows2000 Tomcat4.1]

おはようございます。中村です。

本題に入ります。やりたいことは下記の通りです。
→Formタグ内に複数のボタンを配置するため、action指定先(サーブレット)でどのボタンが押下されたか判別する必要がある。

簡単に調べた結果、サーブレットのrequest.getParmeter("パラメータ名")でパラメータ(value値)が取得できるというのは理解しているのですが、

ここで、問題が。
複数配置しているボタンの内、Confirmダイアログを表示させたいため、
<FORM method="POST" name="update" action="サーブレット名">
<input type="button" name="delete" value="削除" onclick="if(confirm('削除してもよろしいですか?')){documentupdate.submit();}">
なるボタンが存在しております。

この場合、[削除]ボタンが押下されると、
サーブレットのrequest.getParmeter("パラメータ名")でパラメータ(value値)が取得できません。
他の通常ボタンと同様に[削除]ボタンからもvalue値を取得できるようにするためにはどうしたらよいでしょうか?

よろしくお願いいたします。


1:[回答] やちまた [2003/12/15 12:09 ]

押下されたボタンの value が自動的に送信されて getParameter で取得、
そして判別出来るのはそのボタンが type="submit" の場合です。

type="button" の場合は何かそれに代替するものを用意してあげないとダメだと思います。


2:[関連] Nakamura [2003/12/16 10:20 ]

ありがとうございます。

もう一つ。できそうでできないことが・・・。

テキストBoxの属性をdisableにして、変更されないようにした場合は、
getParameter()で取得できないと理解しておりますが、それで合っていますよね?
disable指定したテキストBoxのデータはどうのように受け渡しするのが定石ですか?

よろしくお願いいたします。


3:[回答] やちまた [2003/12/16 11:17 ]

そのとおりです。
disabled 指定を行ったオブジェクトは送信されません。

それに対する手段ですが、何が定石かは分かりません。

送信直前に解除するでも良いですし、
送信用隠しオブジェクトに格納しても良いですし。

お好みの方法で良いのではないでしょうか。


4:[質問] Nakamura [2003/12/16 16:23 ]

度々ありがとうございます。

送信用隠しオブジェクトに格納の使い方がよく理会できないのですが、
ご教授願えますか?


5:[回答] やちまた [2003/12/16 16:56 ]

画面上に見えている、disablede するオブジェクトには適当な name を付けておきます。
更に、隠し項目として hidden を一つ設け、これに本来の name を設定しておきます。

そして、送信直前に画面上のテキストボックスの方から、隠し項目の方に javascript 等で value をコピーすれば良い。

こうすれば送信したい値は、隠し項目の name で送信されるので、
servlet の方でも取得する事が出来るでしょう。

というカラクリです。


6:[回答] AC [2003/12/16 20:22 ]

<input type="submit" name="delete" value="削除" onclick="return confirm('削除してもよろしいですか?')">
では駄目なのですか。


7:[回答] Nakamura [2003/12/17 23:53 ]

やまちたさん、ACさん

ありがとうございます。

To ACさん
試してみます。


8:[完了] やちまた [2003/12/18 08:54 ]

type="button" が大前提なのかと思っていましたが違ったのですね。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World