Select2 has several built-in methods that allow programmatic control of the component.
Methods handled directly by Select2 can be invoked by passing the name of the method to .select2(...)
.
The open
method will cause the dropdown menu to open, displaying the selectable options:
$('#mySelect2').select2('open');
The close
method will cause the dropdown menu to close, hiding the selectable options:
$('#mySelect2').select2('close');
To test whether Select2 has been initialized on a particular DOM element, you can check for the select2-hidden-accessible
class:
if ($('#mySelect2').hasClass("select2-hidden-accessible")) {
// Select2 has been initialized
}
See this Stack Overflow answer).
The destroy
method will remove the Select2 widget from the target element. It will revert back to a standard select
control:
$('#mySelect2').select2('destroy');
When you destroy a Select2 control, Select2 will only unbind the events that were automatically bound by the plugin. Any events that you bind in your own code, including any Select2 events that you explicitly bind, will need to be unbound manually using the .off
jQuery method:
// Set up a Select2 control
$('#example').select2();
// Bind an event
$('#example').on('select2:select', function (e) {
console.log('select event');
});
// Destroy Select2
$('#example').select2('destroy');
// Unbind the event
$('#example').off('select2:select');