jQuery Nice Select is a lightweight jQuery plugin that is the simple replacement for the native select element.
This quickly adds styling on the select element. It works well on both mobile and desktop browsers.
There are not many options and methods are available in this plugin.
Contents
1. Download and Include
- Download the library from GitHub.
- Include
nice-select.css
andjquery.nice-select.min.js
script with the jQuery library.
<link rel="stylesheet" href="jquery-nice-select/css/nice-select.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript" src="jquery-nice-select/js/jquery.nice-select.min.js"></script>
2. Initialize
- Create a
<select >
element with some options. - Now call the
niceSelect()
method on the select element.
$( selector ).niceSelect();
Example
<select id='seluser' > <option value='0'>-- Select user --</option> <option value='1'>Yogesh</option> <option value='2'>Sonarika</option> <option value='3'>Vishal</option> <option value='4'>Vijay</option> <option value='5'>Ravi</option> <option value='6'>Anil</option> </select> <!-- Script --> <script type='text/javascript'> $(document).ready(function(){ $('#seluser').niceSelect(); }); </script>
Output
3. Customize
Display alternate Text
With data-display
set the alternate text for the <option> that visible when an <option> is get selected.
<select > <option data-display='Select user'>-- Select --</option> <option value ='1' data-display='Yogesh singh'>Yogesh</option> <option value ='2' >Sonarika</option> </select>
Custom class
There are 3 classes available – wide, right, small.
<select class='wide' ></select>
Example
In the example, I used class='small'
and defined the data-display
attribute on the 3 option with different values.
<select id='seluser' class='small'> <option value='0' data-display="Select" >-- Select user --</option> <option value='1' data-display="Yogesh singh">Yogesh</option> <option value='2' data-display="Sonarika bhadoria">Sonarika</option> <option value='3'>Vishal</option> <option value='4'>Vijay</option> <option value='5'>Ravi</option> <option value='6'>Anil</option> </select> <!-- Script --> <script type='text/javascript'> $(document).ready(function(){ $('#seluser').niceSelect(); }); </script>
Output
4. Methods
There are two methods –
- update – This method updates the view of nice select when any change made on the
<select >
element.
$('select').niceSelect('update');
- destroy – Remove all customization and unbind all events from the
<select>
.
$('select').niceSelect('destroy');
Example
Here, I created a <select >
element and 3 buttons to initialize, destroy, and update the nice select.
<select id='seluser' > <option value='0'>-- Select user --</option> <option value='1'>Yogesh</option> <option value='2'>Sonarika</option> <option value='3'>Vishal</option> <option value='4'>Vijay</option> <option value='5'>Ravi</option> <option value='6'>Anil</option> </select> <br/><br/> <div style='clear: both; '> <input type='button' value='Enable nice select' id='enable' /> <input type='button' value='Destroy' id='destroy' /> <input type='button' value='Update' id='update' /> </div> <!-- Script --> <script type='text/javascript'> $(document).ready(function(){ // Initialize $('#enable').click(function(){ $('#seluser').niceSelect(); }); // Destroy $('#destroy').click(function(){ $('#seluser').niceSelect('destroy'); }); // Update $('#update').click(function(){ $('#seluser').val(3); $('#seluser').niceSelect('update'); }); }); </script>
Output
5. Conclusion
If you would like to quickly add styling to the select elements without much effort then you can use it on your project otherwise use any other plugins for more customization like – select2, chosen, Selectize, etc.
If you found this tutorial helpful then don't forget to share.
how to use nice select for cascading values for country state city pincode in asp c#
nice Select Update method is not working …
required attribute is not working properly
Thanks a lot it helped me a lot.
Hello,
I used a nice-select for my website. Nice select is very well working but the problem is which page does not have select element on that page show me an error.
Uncaught TypeError: $(…).niceSelect is not a function
Thanks
How to move arrow to left and text to right-align? I need it for rtl languages. Thanks
Can i add an image to each option?! and if yes how to do so ?!
Thanks in advance