--> -->
#title(Collectiveのselectでoptionに属性を指定する)
Laravelの[[Collective:https://laravelcollective.com/docs/5.4/html]]で、以下のようなselect文を書きたかったのですが、思いもよらず苦労したのでメモです。
#code(html){{
<select name='taro'>
<option value="" hidden>選択してください</option>
<option value="1">おこし</option>
<option value="2">につけ</option>
<option value="3">たきび</option>
<option value="4">だんご</option>
</select>
}}
- イメージ~
#htmlinsert(20190112_selectdemo.html)
ポイントは、2行目のoptionタグの&inlinecode{hidden};属性です。~
上記のCollectiveのマニュアルを見ても、属性の指定方法はほぼ書いてありません。~
文法としては以下の通りなので、5番目のオプションにhiddenを指定します。~
#ref(select.png)~
#code(php){{{
{{Form::select(
'taro',
[''=>'選択してください',1=>'おこし',2=>'につけ',3=>'たきび',4=>'だんご'],
(isset($taro)?$taro:null),
[],
[''=>['hidden']]
)}}
}}}
6行目、&inlinecode{[''=>['hidden']]};と指定します。~
value=''のoptionの属性として、配列で['hidden']を指定しています。個々のoptionに対する属性を配列で指定するというのがミソです。属性は複数指定可能なのでよく考えれば当たり前ですが、普通に一次元の配列で試行錯誤してはまってしまいました。