- - PR -
ドロップダウンリスト/セレクトボタンのreadonly処理方法(struts)
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-31 14:57
ドロップダウンリストやラジオボタンの項目をREAD ONLYにしたいのですが、
<html:select>や<html:radio>には<html:text>の様にreadonlyを指定する 方法はどうすればいいでしょうか。 ※<html:hidden>だとフィールド自体消えてしまったため readonlyを指定する方法があるのかと考えていますが、 <html:hidden>でreadonlyと同様の事ができるのであればそちらでもかまいません。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-08-31 15:14
>ドロップダウンリストやラジオボタンの項目をREAD ONLYにしたいのですが、
><html:select>や<html:radio>には<html:text>の様にreadonlyを指定する >方法はどうすればいいでしょうか リファレンス読めば一目瞭然。 http://struts.apache.org/userGuide/struts-html.html disabled属性あたりでできるかも。 ><html:hidden>でreadonlyと同様の事ができるのであればそちらでもかまいません。 <html:hidden> はそもそも見えないのだから、readonlyも何もない気がしますが? | ||||||||||||
|
投稿日時: 2005-08-31 16:09
ハツキタツミありがとうございます。
私の質問の仕方だとご指摘の通りです。言葉足らずでごめんなさい。 まず、自分が扱っているこの項目が必須入力項目になっています。 この状態でdisabled="true"でやってみた所、 NOT NULL制約でエラーが出てしまいます。 <html:select property="AREA" disabled="true"> <html:option value="1" >1.体育館</html:option> <html:option value="2" >2.視聴覚室</html:option> <html:option value="3" >3.会議室</html:option> </html:select> なので、表示だけされている常態でかつDBから取得した値をそのまま返して やりたいというところです。(本当に言葉足らずでした。) <html:hidden>がフィールドを消してDBの値だけ表示できるような事が できるのかと思い<html:hidden>について書きましたが、見当違いのようなので 未視してください。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2005-08-31 16:28
こんにちわ。
それを実現できる属性はなさそうです。 操作できないのにSELECTを使うのはユーザーから見た場合ちょっと 分かりづらいので、普通に文字で表示させておくのはどうでしょうか。 実際のデータはhiddenに入れておきます。 | ||||||||||||
|
投稿日時: 2005-08-31 16:32
Not Nullというのは、当該画面からのリクエストによって起動された
ビジネスロジックの処理(DBにINSERT/UPDATEする時でしょうか)で発生するんですよね? selectによるドロップダウンリストは、disabledにすると値がサーバ側に送信されなかった と思うので、そのせいではないでしょうか? 対応としては、selectに対応したhiddenパラメタを用意しておいて、 JavaScriptでselectの値をhiddenパラメタに設定すれば良いと思います。
| ||||||||||||
|
投稿日時: 2005-08-31 17:23
コナンさん、YOU@ITさんありがとうございます。
理解が間違ってたら申し訳ないですが、 コナンさんのコメントにある方法とYOU@ITさんが書いていただいた 方法というのは同じという事でいいのでしょうか。
プログラム自体初心者なので申し訳ないのですが、HERD部の <script> function setArea() { /* * ドロップダウンAREA_DOROPDOWNの選択値を、 * hiddenパラメタAREAにセットするような * JavaScriptを書く */ </script> の部分について、何かサンプルや似たようなものが勉強できるサイトが ありましたら教えていただけないでしょうか。 また、現在のSELECT部に書く <form onSubmit="setArea()"> :@ <select name="AREA_DROPDOWN" disabled> <option value="1">1.体育館</option> :A </select> <input type="hidden" name="AREA"> :B </form> に関して、Aの部分は残りの選択項目を書けばいいのだと思うのですが、 @とAの部分は何を省略されていますでしょうか。 あと、タグに関して <script> → <script language="javascript"> <form> → <html:form> <select> → <html:select> <option> → <html:option> とすればいいのでしょうか。 理解浅く申し訳ありませんが、よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-08-31 17:39
見た目がちょっと違います。 僕のはSELECTを使わないで、文字だけ表示させるやり方です。 >YOU@ITさん 個人的には、動的に選択可/不可を切り替える場合以外は、 普通に文字として表示したほうがいいと思うんですけど、 どうなんでしょ。 | ||||||||||||
|
投稿日時: 2005-08-31 20:30
JavaScriptで、Google検索するといくらでもありますよ。 僕が良く見るのは、 http://www.tohoho-web.com/js/ http://www.usagi-js.com/ ですね。 selectオブジェクトと、hiddenオブジェクトの操作方法を調べればわかると思います。
特に何かは意識していません。HTMLのその他の部分です。
そうですね。僕が書いたのは生のHTMLですので、Strutsのカスタムタグに置き換えてください。 |