Tiny jQuery Replacement For Select Boxes - Bselect
File Size: | 10.1 KB |
---|---|
Views Total: | 3812 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

Bselect is a lightweight yet robust jQuery plugin designed to replace the native HTML select boxes.
The plugin dynamically renders a performant, customizable, searchable, user-friendly dropdown from an object of options. The selected option will be stored in an input field named bselect-input
.
Easy to customize and manipulate using the following options, methods and events. Multiple select is supported as well.
A great alternative to the select2 and chosen plugins.
How to use it:
1. Import the Stylesheet bselect.css
and JavaScript bselect.js
into the HTML.
<link rel="stylesheet" href="bselect.css" /> <script src="jquery.min.js"></script> <script src="jquery.bselect.js"></script>
2. Create a container element to hold the dropdown select.
<div id="custom-select"></div>
3. Prepare the data (select options) as follows.
var myData = { 1 : "Angular", 2 : "jQueryScript", 3 : "React", 4 : "Vue.js" };
4. Call the function on the placeholder element and populate the dropdown with options defined in the myData
object.
$('#custom-select').bselect({ data : myData });
5. Customize the dropdown by overriding the following options.
$('#custom-select').bselect({ // enable/disable live search search : true, // the width of the dropdown width : "200px", // custom placeholder text defaultText : "Select me", // additional CSS classes className : "", // input name inputName : "bselect-input", // selected index on init selected : 0, // open the dropdown on init opened : false, // close the dropdown after an options is selected closeOnSelect : true, // render dropdown list above the select element if dropdown will not be in view checkInView : true, // enable multiple select multiple : false, // close on select closeOnSelect : true, // enable/disable ellipsis elipsis : true, // in ms focusDelay : 100, // in ms doneTypingInterval : 180, //Display X button next to every item in drop down list removeItemsButton : false, // How many items will be previewd in a dropdown preview : 150, // Show number of selected options selectedCount: false, });
6. API methods.
// open the dropdown $('#custom-select').bselect("open"); // close the dropdown $('#custom-select').bselect("close"); // toggle the dropdown $('#custom-select').bselect("toggle"); // select an option by ID $('#custom-select').bselect("selectById", 2); // get the selected option $('#custom-select').bselect("getSelected"); // append a new option $('#custom-select').bselect("append", 4, "HTML5"); // prepend an option $('#custom-select').bselect("prepend", 5, "CSS3"); // remove an item $('#custom-select').bselect("remove", 3); // disable click on item $('#custom-select').bselect("disable", 3); // get disabled $('#select-box').bselect("getDisabled"); // disable all elements $('#select-box').bselect("disableAll"); // disable an option $('#select-box').bselect("disabled", 8); // enable an option $('#select-box').bselect("enable", 8); // enable all options $('#select-box').bselect("enableAll"); // is selected option $('#select-box').bselect("selected", 8); // select all $('#select-box').bselect("selectAll"); // get selected text (will return multiple values in csv format when multiple mode is enabled) $('#select-box').bselect("getSelectedText"); // deselect all $('#select-box').bselect("deselectAll"); // deselect item $('#select-box').bselect("deselect", 8);
7. Event handlers.
$('#custom-select').on('open.bselect', function(e,params){ // on open }); $('#custom-select').on('opened.bselect', function(e,params){ // after open }); $('#custom-select').on('close.bselect', function(e,params){ // on close }); $('#custom-select').on('closed.bselect', function(e,params){ // after close }); $('#custom-select').on('toggle.bselect', function(e,params){ // on toggle }); $('#custom-select').on('toggled.bselect', function(e,params){ // after toggle }); $('#custom-select').on('select.bselect', function(e,params){ // start selecting options }); $('#custom-select').on('selected.bselect', function(e,params){ // after an item selected }); $('#custom-select').on('updated.bselect', function(e,params){ // after the dropdown is updated }); $('#custom-select').on('unselected.bselect', function(e,params){ // after an item is unselected }); $('#custom-select').on('unselectedAll.bselect', function(e,params){ // after all items are unselcted });
Changelog:
2022-08-04
- unselectedall event
2022-08-03
- show number of selected options
2021-04-12
- Added getSelectedText method to return selected items containing text insted of index
2021-03-25
- Fix for preselected and selecting values programatically
2021-03-20
- Removed duplicate input field
- Fix for remove item when search
- Added removeItemsButton setting to display X button for every item in dropdown list
2021-03-12
- Optimized for large data sets with preview attribute
2021-03-12
- Added remove item method
- Changed displaying items from display to visibility property
- Changed how does close method works to speed up rendering on large amount of sets 10k+
2020-03-06
- fix for deselectAll
2019-12-02
- Speed optimization
2019-11-29
- replaced removeAll with deselectAll
2019-10-22
- Optimized search
- Optimized inView option
- Added selected, isDisabled methods
2019-10-21
- Fix for trigger event on append and prepend
2019-10-19
- Code optimized, fixed preselect added by VKuraica, minified version updated
- Added option to render dropdown list above the select element if dropdown will not be in view
2019-10-18
- Add multiple pre selected values
2019-10-17
- Fixed for none selected items
2019-10-16
- Multiple selextbox added, comments, optimized search
This awesome jQuery plugin is developed by losmicar. For more Advanced Usages, please check the demo page or visit the official website.