Controlgroup Widgetversion added: 1.12
Description: Themeable set of input widgets.
A controlgroup provides a visual grouping for button and other input widgets. Controlgroup works by selecting all appropriate descendants, based on the items option, and applying their respective widgets, if loaded. If the widgets already exist, their refresh()
method is called. You can enable and disable a controlgroup, which will enable and disable all contained widgets. Destroying a controlgroup also calls each widgets's .destroy()
method.
Theming
The controlgroup widget uses the jQuery UI CSS framework to style its look and feel. If controlgroup specific styling is needed, the following CSS class names can be used for overrides or as keys for the classes
option:
-
ui-controlgroup
: The outer container of controlgroups. Depending on the direction option, this element will additionally have theui-controlgroup-horizontal
orui-controlgroup-vertical
classes.-
ui-controlgroup-item
: Each item inside the group.
-
Dependencies
Additional Notes:
- This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.
Options
classes
{}
Specify additional classes to add to the widget's elements. Any of classes specified in the Theming section can be used as keys to override their value. To learn more about this option, check out the learn article about the classes
option.
Initialize the controlgroup with the classes
option specified, changing the theming for the ui-controlgroup
class:
$( ".selector" ).controlgroup({ classes: { "ui-controlgroup": "highlight" } });
Get or set a property of the classes
option, after initialization, here reading and changing the theming for the ui-controlgroup
class:
// Getter var themeClass = $( ".selector" ).controlgroup( "option", "classes.ui-controlgroup" ); // Setter $( ".selector" ).controlgroup( "option", "classes.ui-controlgroup", "highlight" );
direction
"horizontal"
By default, controlgroup displays its controls in a horizontal layout. Use this option to use a vertical layout instead.
Initialize the controlgroup with the direction
option specified:
$( ".selector" ).controlgroup({ direction: "vertical" });
Get or set the direction
option, after initialization:
// Getter var direction = $( ".selector" ).controlgroup( "option", "direction" ); // Setter $( ".selector" ).controlgroup( "option", "direction", "vertical" );
disabled
false
true
.Initialize the controlgroup with the disabled
option specified:
$( ".selector" ).controlgroup({ disabled: true });
Get or set the disabled
option, after initialization:
// Getter var disabled = $( ".selector" ).controlgroup( "option", "disabled" ); // Setter $( ".selector" ).controlgroup( "option", "disabled", true );
items
{ "button": "input[type=button], input[type=submit], input[type=reset], button, a", "controlgroupLabel": ".ui-controlgroup-label", "checkboxradio": "input[type='checkbox'], input[type='radio']", "selectmenu": "select", "spinner": ".ui-spinner-input" }
-
controlgroupLabel
: Any elements matching the selector for this will be wrapped in a span with theui-controlgroup-label-contents
class. -
spinner
: This uses a class selector as the value. Requires either adding the class manually or initializing the spinner manually. Can be overridden to useinput[type=number]
, but that also requires custom CSS to remove the native number controls.
onlyVisible
true
Initialize the controlgroup with the onlyVisible
option specified:
$( ".selector" ).controlgroup({ onlyVisible: false });
Get or set the onlyVisible
option, after initialization:
// Getter var onlyVisible = $( ".selector" ).controlgroup( "option", "onlyVisible" ); // Setter $( ".selector" ).controlgroup( "option", "onlyVisible", false );
Methods
destroy()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the destroy method:
$( ".selector" ).controlgroup( "destroy" );
disable()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the disable method:
$( ".selector" ).controlgroup( "disable" );
enable()Returns: jQuery (plugin only)
- This method does not accept any arguments.
Invoke the enable method:
$( ".selector" ).controlgroup( "enable" );
instance()Returns: Object
Retrieves the controlgroup's instance object. If the element does not have an associated instance, undefined
is returned.
Unlike other widget methods, instance()
is safe to call on any element after the controlgroup plugin has loaded.
- This method does not accept any arguments.
Invoke the instance method:
$( ".selector" ).controlgroup( "instance" );
option( optionName )Returns: Object
Gets the value currently associated with the specified optionName
.
Note: For options that have objects as their value, you can get the value of a specific key by using dot notation. For example, "foo.bar"
would get the value of the bar
property on the foo
option.
- optionNameType: StringThe name of the option to get.
Invoke the method:
var isDisabled = $( ".selector" ).controlgroup( "option", "disabled" );
option()Returns: PlainObject
- This signature does not accept any arguments.
Invoke the method:
var options = $( ".selector" ).controlgroup( "option" );
option( optionName, value )Returns: jQuery (plugin only)
Sets the value of the controlgroup option associated with the specified optionName
.
Note: For options that have objects as their value, you can set the value of just one property by using dot notation for optionName
. For example, "foo.bar"
would update only the bar
property of the foo
option.
- optionNameType: StringThe name of the option to set.
- valueType: ObjectA value to set for the option.
Invoke the method:
$( ".selector" ).controlgroup( "option", "disabled", true );
option( options )Returns: jQuery (plugin only)
- optionsType: ObjectA map of option-value pairs to set.
Invoke the method:
$( ".selector" ).controlgroup( "option", { disabled: true } );
refresh()Returns: jQuery (plugin only)
items
option.- This method does not accept any arguments.
Invoke the refresh method:
$( ".selector" ).controlgroup( "refresh" );
widget()Returns: jQuery
jQuery
object containing the controlgroup. - This method does not accept any arguments.
Invoke the widget method:
var widget = $( ".selector" ).controlgroup( "widget" );
Events
create( event, ui )Type: controlgroupcreate
Note: The ui
object is empty but included for consistency with other events.
Initialize the controlgroup with the create callback specified:
$( ".selector" ).controlgroup({ create: function( event, ui ) {} });
Bind an event listener to the controlgroupcreate event:
$( ".selector" ).on( "controlgroupcreate", function( event, ui ) {} );
Example:
A simple jQuery UI controlgroup
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>controlgroup demo</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.12.4.js"></script> <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> <body> <form> <fieldset> <legend>Favorite jQuery Project</legend> <div id="radio"> <input type="radio" id="sizzle" name="project"> <label for="sizzle">Sizzle</label> <input type="radio" id="qunit" name="project" checked="checked"> <label for="qunit">QUnit</label> <input type="radio" id="color" name="project"> <label for="color">Color</label> </div> </fieldset> </form> <script> $( "#radio" ).controlgroup(); </script> </body> </html>