- ベストアンサー
selectを変更不可にしたい
いつもお世話になっております。 今回はselectについてお聞きしたいです。 ある条件でselectを選択不可にしようと思い、 if(...) Selectbox.disabled = true; としておりますが、選択は不可能になりましたが灰色がかってしまいます。 できれば色は黒いままで選択不可にしたいのですがどのように すれば実現できますでしょうか? ご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たとえば、選べるけど、値が変えられないとかでしたらこんな感じで <script> function check(obj){ var s=obj.form.hoge; if(obj.checked){ s.index=s.selectedIndex; s.onchange=function(){this.selectedIndex=this.index;} }else{ s.onchange=function(){return false;} } } </script> <form> <input type="checkbox" onClick="check(this)">変更不可 <select name="hoge"> <option>0</option> <option>1</option> <option>2</option> <option>3</option> </select> </form>
その他の回答 (2)
- atom_seed
- ベストアンサー率48% (25/52)
「選択不可能」を拡大解釈しまして、「選択肢を切り替えられない」とするなら下記のようなイベントを追加することで対応できます。 <select onmousedown="reset_value=this.selectedIndex" onchange="this.selectedIndex=reset_value"> プルダウンの選択肢一覧を見えないように制御したいのであれば、 「選択用プルダウン」と「選択不可用プルダウン」の2つを用意しておき、常に一方を隠して、必要に応じて切り替えて表示するようにすることで対応できそうです。
- yambejp
- ベストアンサー率51% (3827/7415)
>灰色がかってしまいます。 disableというのは選ばれているようにみえてもそのデータはサーバに おくられません。 黒いままだと「データが選ばれている」と錯覚されるので、それを 防ぐ仕様です。 だいぶ姑息なことをしないと無理なので、あきらめたほうがいいでしょう
補足
ご回答ありがとうございます。 今回は選択不可であるが確認はできるというものが作りたいので、 そのデータがサーバに送られてもいいです。 「データが選ばれている」と錯覚されてもいい場合であっても かなり複雑な処理が必要となってしまうのでしょうか?