This module adds the ability to specify attributes for individual options on Drupal Form API elements of the types: select, checkboxes, and radios.
This is an API module, with no user interface. You would only need this module if another module you are using requires it or if you are programming a custom form that needs attributes on select <option>
children, individual radio buttons within a radios element, or individual checkbox elements within a checkboxes group element.
Usage
To add attributes to a form element's options, add an #options_attributes
key to the form element definition. The #options_attributes
value should be an array with keys that match the keys in the #options
value array. The values in the #options_attributes
array should be formatted like the main #attributes
array.
Example:
<?php
$form['states'] = array(
'#type' => 'select',
'#title' => t('States'),
'#options' => array(
'AL' => t('Alabama'),
'AK' => t('Alaska'),
'AZ' => t('Arizona'),
'AR' => t('Arkansas'),
// ..
'WI' => t('Wisconsin'),
'WY' => t('Wyoming'),
),
'#options_attributes' => array(
'AL' => array('class' => array('southeast'), 'data-bbq-meat' => 'pork'),
'AK' => array('class' => array('non-contiguous'), 'data-bbq-meat' => 'salmon'),
'AZ' => array('class' => array('southwest'), 'data-bbq-meat' => 'rattlesnake'),
'AR' => array('class' => array('south'), 'data-bbq-meat' => 'beef'),
// ...
'WI' => array('class' => array('midwest'), 'data-bbq-meat' => 'cheese'),
'WY' => array('class' => array('flyover'), 'data-bbq-meat' => 'bison'),
),
'#attributes' => array('class' => array('states-bbq-selector')),
);
?>
Label and wrapper attributes
Individual attributes for each option's label and wrapper can be set using the '#options_wrapper_attributes' and '#options_label_attributes' keys in the same vein as the '#options_attributes' key. This is only supported for 'radios' and 'checkboxes' elements.
Core Issue
This module exists because of a lack of the options attribute functionality in Drupal core. There is an issue related to adding this to core here: #342316: Introduce proper Form API #types for 'option' and 'optgroup', and make #options consistent.
Project information
- Module categories: Developer Tools
- 7,667 sites report using this module
- Created by zengenuity on , updated
- Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.
Releases
Development version: 2.0.x-dev updated 25 Sep 2022 at 15:10 UTC
Development version: 7.x-1.x-dev updated 7 Feb 2017 at 17:23 UTC