It clocks in at around ~7kb (gzipped). The goal is to provide a solid & usable user-experience with a clean and powerful API.
It's a lot like Chosen, Select2, and Tags Input but
with a few advantages. Developed by @brianreavis (partly at DIY).
Licensed under the Apache License, Version 2.0… so do whatever you want with it!
Features
Skinnable — Comes with LESS stylesheets and shims for Bootstrap 2 and Bootstrap 3 (+ precompiled CSS).
Clean API & Code + Extensible — Interface & make addons like a boss with the plugin system. Fully documented on GitHub & inline.
Smart Ranking / Multi-Property Searching & Sorting — Want to search an item's title and description? No problem. You can even override the scoring function used for sorting if you want to get crazy. Uses sifter.js.
Caret Between Items — Order matters sometimes. Use the left and right arrow keys to move between items.
Select & Delete multiple items at once — Hold down option on Mac or ctrl on Windows to select more than one item to delete.
RTL + Díåcritîçs supported — Great for international environments.
Item Creation — Allow users to create items on the fly (and it's async friendly; the control locks until you invoke a callback).
Remote Data Loading — For when you have thousands of options and want them provided by the server as the user types.
Add and remove items in any order without touching your mouse.
Use your left/right arrow keys to move the caret (ibeam) between items. This
example is instantiated from a <input type="text"> element (note
that the value is represented as a string).
Email Contacts
This demonstrates two main things: (1) custom item and option rendering, and (2) item creation on-the-fly.
Try typing a valid and invalid email address.
Single Item Select
The most vanilla of examples.
Option Groups
Selectize supports <optgroup> rendering (as of v0.5.0).
Max Items
This example only allows 3 items. Select one more item and the control will be disabled
until one or more are deleted.
Country Selector
A good example of (1) support for international characters (diacritics) and (2) how items are scored and sorted.
Try typing "islands", for instance.
Remote Source — Github
This demo shows how to integrate third-party data from the GitHub API.
Remote Source — Rotten Tomatoes
This demo shows how to integrate third-party data from the Rotten Tomatoes API. Try searching for "Iron Man".
Note: if this doesn't work, it's because the API limit has been reached... try again later :)
City / State Selection
A demonstration showing how to use the API to cascade controls for a classic state / city selector.
Note: The API for fetching cities is a little spotty, so if it fails to list cities, that's what's going on (try another state).
"restore_on_backspace"
Press the [backspace] key and go back to editing the item without it being fully removed.
"remove_button"
This plugin adds classic a classic remove button to each item for behavior that mimics Select2 and Chosen.
"drag_drop"
Adds drag-and-drop support for easily rearranging selected items. Requires jQuery UI (sortable).
"optgroup_columns"
A plugin by Simon Hewitt that
renders optgroups horizontally with convenient left/right keyboard navigation.