Help us understand the problem. What is going on with this article?

【Rails】セレクトタグの選択肢は確認できるが、選択できないようにする。

More than 1 year has passed since last update.

select_tag

ドキュメント
選択ボックスを生成

options_for_select

ドキュメント
配列・ハッシュから選択肢を生成する

今回作成したいHTML

<select name="select" id="select">
  <option selected="selected" disabled="disabled" value="blank">選択 ▼</option>
  <option disabled="disabled" value="value1">key1</option>
  <option disabled="disabled" value="value2">key2</option>
</select>

スクリーンショット 2018-11-30 16.40.51.png⇦選択ボックスがあって
スクリーンショット 2018-11-30 16.40.58.png⇦選択肢は見れるけど選択はできない
別に全部選択できないようにする必要がないって場合でも
ちょっと手を加えれば一部だけ選択ができないとかでもできる。

slimで書く

erbでもいいんだけど最近slimで書く機会が多くてね...

- choices = [['選択 ▼','blank'],['key1','value1'],['key2','value2']]
= select_tag :select,
  options_for_select(choices, selected: 'blank', disabled: choices.map(&:last))

ドキュメントには:selectedが指定できるのは書いてあるけど
:disabledが指定できるのは書いてない。
disabled="disabled"にしたい項目のvalueを配列で指定すると
その項目は選択することができなくなる。

ちなみに

- choices = [['選択 ▼','blank'],['key1','value1'],['key2','value2']]
= select_tag :select,
  options_for_select(choices, selected: 'blank'),
  disabled: true

とすると
スクリーンショット 2018-11-30 16.49.53.png
セレクトボックスそのものが無効になり、選択肢を確認することすら不可能になる。
(厳密には開発者ツール使えば見れるけど)

終わり。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away