SelectBox replacement using jQuery. Hides the selectbox and replaces it with an accessible js version. All you need to do is style it. Also supports background images on individual options.
JavaScript CSS
Latest commit c81b5ae Feb 9, 2015 @roblaplaca Merge pull request #13 from kel-sakal-biyik/master
copy select element's classes

README.md

Custom Selectbox

SelectBox replacement using jQuery. Hides the selectbox and replaces it with an easy to style css version.

example selectbox example selectbox

Features include:

  • Custom scrollbar - by default custom scrollbars using jScrollPane are enabled. You can also use the default browser one, but that doesn't look nice.
  • Icon Support - If an option has a CSS class, that will get carried over to the generated selectbox code as a span with a classname which can then be styled.
  • Keyboard access - If you focus on a select, you can hit up/down, or even type in text and it will update like a regular select.
  • Opt Groups - Like a regular selectbox, it supports optgroups. If those are in the HTML markup, then they will show up in the custom one.
  • Disabled Fields - select now recognizes disabled fields and makes them unclickable. It's driven by a real selectbox, so it will pass values in forms. The way it works is that the code will find the selectbox and hide it. Then the JS will generate a fake "custom" selectbox which can be styled. All interactions are routed back to the existing selectbox though. So... if you change the custom one, the real one will be synced as well. This way when you're submitting a form with a custom select, you don't lose the value.
  • No JavaScript mode - If JavaScript isn't turned on it just displays a regular selectbox instead.
  • Interface - There are public methods for syncing the select box if it is updated, and also for disabling it. So it's pretty easy to wire it up with complex functionality.
  • Browser support - I tested it in Firefox, Chrome, Safari, IE7+ (with a few style tweaks IE6 will work fine too)