Returns a string of <option>
tags, like
options_for_select
, but wraps them with
<optgroup>
tags:
1 2 3 4 5 6 7 8 9 10 11 12 13 | grouped_options = [ [ 'North America' , [[ 'United States' , 'US' ], 'Canada' ]], [ 'Europe' , [ 'Denmark' , 'Germany' , 'France' ]] ] grouped_options_for_select(grouped_options) grouped_options = { 'North America' => [[ 'United States' , 'US' ], 'Canada' ], 'Europe' => [ 'Denmark' , 'Germany' , 'France' ] } grouped_options_for_select(grouped_options) |
Possible output:
1 2 3 4 5 6 7 8 9 | <optgroup label= "North America" > <option value= "US" >United States</option> <option value= "Canada" >Canada</option> </optgroup> <optgroup label= "Europe" > <option value= "Denmark" >Denmark</option> <option value= "Germany" >Germany</option> <option value= "France" >France</option> </optgroup> |
Parameters:
-
grouped_options
- Accepts a nested array or hash of strings. The first value serves as the<optgroup>
label while the second value must be an array of options. The second value can be a nested array of text-value pairs. Seeoptions_for_select
for more info.1Ex. [
"North America"
,[[
"United States"
,
"US"
],[
"Canada"
,
"CA"
]]]
-
selected_key
- A value equal to thevalue
attribute for one of the<option>
tags, which will have theselected
attribute set. Note: It is possible for this value to match multiple options as you might have the same option in multiple groups. Each will then getselected="selected"
.
Options:
-
:prompt
- set to true or a prompt string. When the select element doesn't have a value yet, this prepends an option with a generic prompt - âPlease selectâ - or the given prompt string. -
:divider
- the divider for the options groups.12345grouped_options = [
[[
'United States'
,
'US'
],
'Canada'
],
[
'Denmark'
,
'Germany'
,
'France'
]
]
grouped_options_for_select(grouped_options,
nil
, divider:
'---------'
)
Possible output:
123456789<optgroup label=
"---------"
>
<option value=
"US"
>United States</option>
<option value=
"Canada"
>Canada</option>
</optgroup>
<optgroup label=
"---------"
>
<option value=
"Denmark"
>Denmark</option>
<option value=
"Germany"
>Germany</option>
<option value=
"France"
>France</option>
</optgroup>
Note: Only the <optgroup>
and
<option>
tags are returned, so you still have to wrap
the output in an appropriate <select>
tag.
Please login to continue.