• ベストアンサー

セレクトメニューを選択不可にしつつvalueの値を生かす方法

いつもこのサイトを利用させていただいています。 セレクトメニューの選択不可はdisabledを使えばできることがわかったのですが、それだとvalueの値が保持されませんよね。 選択不可なんだけど、value=""の値を持たせたいのですが、どのようにすればよいでしょうか? ご教授よろしくお願いします。

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.2

disabledされるであろう項目名と同じ項目名について、 HIDDENで定義します。名前は、_h を付けるとか。 初期値では、disabledで無効化して置き、 if (fOBJ["data_kit"][1].checked) { fOBJ["pc_os"].disabled = false; fOBJ["pc_os_h"].disabled = true; } else { fOBJ["pc_os"].disabled = true; fOBJ["pc_os_h"].disabled = false; } なんてコードで有効にしてしまう。 なんてアイディアではどうでしょうか? もちろん。受け側でも、_h 付きに付いてもチェックして頂く必要があるのですけど。 # 試してないので分かりませんが、_h なしでも動く様な気もすこし。。。

pig1320
質問者

お礼

なるほど・・・という感じです。 うまく機能しました。 どうもありがとうございます。 ちなみに_hなしでやってみたのですが、 うまくいきませんでした・・・。 (知識不足かもしれませんが・・・。)

その他の回答 (1)

noname#10926
noname#10926
回答No.1

セレクトメニューは下記のようになると思うのですが、それで何をされたいのかもうちょっと詳しく説明された方がよいと思います。 <SELECT size="2" name="hoge" disabled> <OPTION value="1" selected>a</OPTION> <OPTION value="2">b</OPTION> <OPTION value="3">c</OPTION> </SELECT>

pig1320
質問者

補足

すみません。 今作成しているのはこんな感じのソースです。 具体的にしたいことは、不要を選択するとセレクトメニューが選択できないようにしたいです。 かつ、フォーム送信したときにvalue=""の値も送信したいのです。disableだと値も無効になってしまうのでこれを回避したいです。 よろしくお願いします。 <html> <head> <title>テスト</title> <script Language="JavaScript"><!-- function setSc() { fOBJ = document.f1; RadioNum = 2; // ラジオボタンの数 for (i=0; i<RadioNum; i++) { if (fOBJ["data_kit"][1].checked) fOBJ["pc_os"].disabled = false; else fOBJ["pc_os"].disabled = true; } } // --></script> </head> <body> <form name="f1"> <input type="radio" name="data_kit" onClick="setSc()" checked>不要<br> <input type="radio" name="data_kit" onClick="setSc()">要<br> ご利用OS&nbsp; <select name="pc_os" size=1 disabled> <option value="" selected>- お選び下さい -</option> <option value="a">a</option> <option value="b">b</option> <option value="c">c</option> </select> </form> </body> </html>

関連するQ&A