enhanced-select
v1.0.26
Published
ESelect is a JavaScript plugin that provides an enhanced alternative to the classic HTML <select> element. It allows for additional features such as custom "other" fields, tagging, and more, while also manipulating the DOM to deliver a more intuitive and
Downloads
12
Maintainers
Readme
ESelect
ESelect is a JavaScript plugin that provides an enhanced alternative to the classic HTML <select> element. It allows for additional features such as custom "other" fields, tagging, and more, while also manipulating the DOM to deliver a more intuitive and interactive user experience. This project is open source and available on GitHub.
Important Note
ESelect can only be used if it goes through a module bundler or in any JavaScript frameworks like React, Angular, Vue, etc. Make sure to integrate ESelect accordingly for seamless integration. If you want to use it in vanilla js then make use of the js or ts code in GitHub.
Features
- Custom 'Other' Field: Allow users to type a custom value when they don't find a suitable option in the dropdown.
- Tagging: Users can tag their selections for more visibility and easier access to choices. Additionally, a character limit for tags ensures concise displays.
- Dynamic Sorting: Keeps the dropdown options sorted for better organization, ensuring a consistent user experience.
- DOM Manipulation: Modifies the original <select> element for enhanced behavior without changing your existing markup, making integration seamless.
- Customization: Easily style the enhanced select to match your application's look and feel. Customize the splitter for tags, character limit, and other option indicator according to your needs.
- Pre Selection: Pre selects the options that must be selected by default.
Built with
- TypeScript
- SCSS
Installation
npm install enhanced-select
Usage
import ESelect from 'enhanced-select';
const selectElement = document.getElementById('mySelect');
const obj = new ESelect(selectElement);
Customization
const myESelect = new ESelect(selectElement, {
splitter: ',', // Customize tag splitter (default: ',')
charLimit: 10, // Set character limit for tags (default: 10)
hasOtherIndicator: false, // If the opter indicator should be implemented or not (default: false)
otherOptionIndicator: ',', // Customize indicator for other option (default: ',')
initialOption: false, // If the placeholder initial option is available or not (default: false)
preSelectedOptions: [{textContent: '', value: ''}, ...] // options that has to be preselected
});