Bootstrap Dropdown Select Enhancement Plugin With jQuery
File Size: | 364 KB |
---|---|
Views Total: | 25763 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
Bootstrap Select is a jQuery plugin for creating dropdown lists and menus using Bootstrap dropdown component that features live search, multiple selection, custom styling, select/deselect all and much more.
Bootstrap 4 Version is Now AVAILABLE.
Available extension:
Install the Bootstrap Select via Package managers:
# NPM npm install bootstrap-select # Bower bower install bootstrap-select
How to use it:
1. Import the Bootstrap Select plugin into your Bootstrap project. Note that the JavaScript file bootstrap-select.min.js
must be included after jQuery library.
<link rel="stylesheet" href="bootstrap-select.min.css"> <script src="bootstrap-select.min.js"></script>
2. Add the CSS class 'selectpicker' to your existing select
element as this:
<select id="basic" class="selectpicker form-control"> <option>cow</option> <option data-subtext="option subtext">bull</option> <option class="get-class" disabled>ox</option> <optgroup label="test" data-subtext="optgroup subtext"> <option>ASD</option> <option selected>Bla</option> <option>Ble</option> </optgroup> </select>
3. Call the function to initialize the plugin with default options.
$('.selectpicker').selectpicker({ // options here });
4. All possible plugin options to customize the dropdown select.
$('.selectpicker').selectpicker({ // text for no selection noneSelectedText: 'Nothing selected', // text for no result noneResultsText: 'No results matched {0}', // Sets the format for the text displayed when selectedTextFormat is count or count > #. {0} is the selected amount. {1} is total available for selection. // When set to a function, the first parameter is the number of selected options, and the second is the total number of options. // The function must return a string. countSelectedText: function (numSelected, numTotal) { return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; }, // The text that is displayed when maxOptions is enabled and the maximum number of options for the given scenario have been selected. // If a function is used, it must return an array. array[0] is the text used when maxOptions is applied to the entire select element. array[1] is the text used when maxOptions is used on an optgroup. // If a string is used, the same text is used for both the element and the optgroup. maxOptionsText: function (numAll, numGroup) { return [ (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' ]; }, // Text for Select All button selectAllText: 'Select All', // Text for Deselect All button deselectAllText: 'Deselect All', // Shows done button doneButton: false, // Text for done button doneButtonText: 'Close', // custom separator multipleSeparator: ', ', // button styles styleBase: 'btn', style: 'btn-default', // dropdown size size: 'auto', // dropdown title title: null, // 'values' | 'static' | 'count' | 'count > x' selectedTextFormat: 'values', // dropdown width width: false, // e.g., container: 'body' | '.main-body' container: false, // hide disabled options hideDisabled: false, // shows sub text showSubtext: false, // shows icon showIcon: true, // shows content showContent: true, // auto dropup dropupAuto: true, // shows dropdown header header: false, // live search options liveSearch: false, liveSearchPlaceholder: null, liveSearchNormalize: false, liveSearchStyle: 'contains', // enables Select All / Deselect All box actionsBox: false, // icons iconBase: 'glyphicon', tickIcon: 'glyphicon-ok', // shows checkmark on selected option showTick: false, // custom template template: { caret: '<span class="caret"></span>' }, // string | array | function maxOptions: false, // enables the device's native menu for select menus mobile: false, // treats the tab character like the enter or space characters within the selectpicker dropdown. selectOnTab: false, // Align the menu to the right instead of the left. dropdownAlignRight: false, // e.g. [top, right, bottom, left] windowPadding: 0 });
5. Events available.
$('.selectpicker').on('show.bs.select', function (e) { // on show }); $('.selectpicker').on('shown.bs.select', function (e) { // on shown }); $('.selectpicker').on('hide.bs.select', function (e) { // on hide }); $('.selectpicker').on('hidden.bs.select', function (e) { // do hidden }); $('.selectpicker').on('loaded.bs.select', function (e) { // on loaded }); $('.selectpicker').on('rendered.bs.select', function (e) { // on rendered }); $('.selectpicker').on('refreshed.bs.select', function (e) { // on refreshed }); $('.selectpicker').on('changed.bs.select', function (e) { // on changed });
6. API methods.
// Sets the selected value $('.selectpicker').selectpicker('val', 'JQuery'); $('.selectpicker').selectpicker('val', ['jQuery','Script']); // Selects all items $('.selectpicker').selectpicker('selectAll'); // Clears all $('.selectpicker').selectpicker('deselectAll'); // Re-render $('.selectpicker').selectpicker('render'); // Enables mobile scrolling if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) { $('.selectpicker').selectpicker('mobile'); } // Sets styles // Replace Class $('.selectpicker').selectpicker('setStyle', 'btn-danger'); // Add Class $('.selectpicker').selectpicker('setStyle', 'btn-large', 'add'); // Remove Class $('.selectpicker').selectpicker('setStyle', 'btn-large', 'remove'); // Refreshes $('.selectpicker').selectpicker('refresh'); // Toggles the drop down list $('.selectpicker').selectpicker('toggle'); // Hides the drop down list $('.selectpicker').selectpicker('hide'); // Shows the drop down list $('.selectpicker').selectpicker('show'); // Destroys the drop down list $('.selectpicker').selectpicker('destroy');
Changelog:
v1.12.4 (2018-08-20)
- Bugfixed: Event creation throws illegal constructor error on stock Android Browser < 5.0
- Bugfixed: Bootstrap-select steals focus on form.checkValidity
v1.12.3 (2017-07-07)
- Add selectAllText and deselectAllText to translation files (used Google Translate)
- Keydown improvements
- Fixed htmlEscape inline style
- Livesearch performance
- Add/update various translations
This awesome jQuery plugin is developed by silviomoreto. For more Advanced Usages, please check the demo page or visit the official website.