Chosen
Chosen is a JavaScript plugin for Prototype and jQuery that makes long, unwieldy select boxes much more user-friendly. For more information (including usage, explanation and faqs), check out the online documentation.
Standard Select
Turns This
Into This
Multiple Select
Turns This
Into This
<optgroup> Support
Single Select with Groups
Multiple Select with Groups
Selected and Disabled Support
Chosen automatically highlights selected options and removes disabled options.
Single Select
Multiple Select
It is also possible to prevent selected options being deselected by also making them disabled.
Default Text Support
Chosen automatically sets the default field text ("Choose a country...") by reading the select element's data-placeholder value. If no data-placeholder value is present, it will default to "Select Some Option" or "Select Some Options" depending on whether the select is single or multiple. You can change these elements in the plugin js file as you see fit.
<select data-placeholder="Choose a country..." style="width:350px;" multiple class="chzn-select">
Note: on single selects, the first element is assumed to be selected by the browser. To take advantage of the default text support, you will need to include a blank option as the first element of your select list.
No Results Text Support
Setting the "No results" search text is as easy as passing an option when you create Chosen:
$(".chzn-select").chosen({no_results_text: "No results matched"});
Limit Selected Options in Multiselect
You can easily limit how many options can user select:
$(".chzn-select").chosen({max_selected_options: 5});
If you try to select another option with limit reached liszt:maxselected
event is triggered:
$(".chzn-select").bind("liszt:maxselected", function () { ... });
Allow Deselect on Single Selects
When a single select box isn't a required field, you can set allow_single_deselect: true
and Chosen will add a UI element for option deselection. This will only work if the first option has blank text.
Right to Left Support
Chosen supports right to left select boxes too. just add "chzn-rtl"
in addition to "chzn-select"
to your select tags and you are good to go.
<select class="chzn-select chzn-rtl">
Single right to left select
Multiple right to left select