Returns a string of <option>
tags, like
options_for_select
, but wraps them with
<optgroup>
tags:
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:
<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.Ex. ["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.grouped_options = [ [['United States','US'], 'Canada'], ['Denmark','Germany','France'] ] grouped_options_for_select(grouped_options, nil, divider: '---------')
Possible output:
<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.