Skip to content
Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
Branch: develop
Clone or download
kevin-brown [WIP] Get Grunt consistently working again (#5466)
Get Grunt consistently working again
Latest commit 9f8b6ff Mar 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Enable the Stale integration Mar 13, 2019
docs update README for /docs Sep 10, 2017
src minor fix (greek omega used has no diacritic) (#5464) Mar 19, 2019
vendor Use NPM versions in builds Nov 27, 2015
.gitignore gitignore .sass-cache. Apr 27, 2015
.jshintignore Overhaul of the AMD integration Mar 14, 2015
.jshintrc Migrate from expect to assert.expect May 24, 2016
.travis.yml Use new travis infrastructure Aug 10, 2015 update changelog and compile+minify for 4.0.6-rc.1 Nov 22, 2017
Gruntfile.js update version in package manager config files Sep 6, 2017 add cdn badges (#5167) Sep 15, 2018
component.json bump for 4.0.6-rc.1 Oct 26, 2017
composer.json update versions and urls in package configs Sep 23, 2017
package.json [WIP] Get Grunt consistently working again (#5466) Mar 20, 2019
select2.jquery.json bump for 4.0.6-rc.1 Oct 26, 2017


Build Status cdnjs jsdelivr

Select2 is a jQuery-based replacement for select boxes. It supports searching, remote data sets, and pagination of results.

To get started, checkout examples and documentation at

Use cases

  • Enhancing native selects with search.
  • Enhancing native selects with a better multi-select interface.
  • Loading data from JavaScript: easily load items via AJAX and have them searchable.
  • Nesting optgroups: native selects only support one level of nesting. Select2 does not have this restriction.
  • Tagging: ability to add new items on the fly.
  • Working with large, remote datasets: ability to partially load a dataset based on the search term.
  • Paging of large datasets: easy support for loading more pages when the results are scrolled to the end.
  • Templating: support for custom rendering of results and selections.

Browser compatibility

  • IE 8+
  • Chrome 8+
  • Firefox 10+
  • Safari 3+
  • Opera 10.6+

Select2 is automatically tested on the following browsers.

Sauce Labs Test Status


You can source Select2 directly from a CDN like JSDliver or CDNJS, download it from this GitHub repo, or use one of the integrations below.


Third party developers have created plugins for platforms which allow Select2 to be integrated more natively and quickly. For many platforms, additional plugins are not required because Select2 acts as a standard <select> box.



Missing an integration? Modify this README and make a pull request back here to Select2 on GitHub.

Internationalization (i18n)

Select2 supports multiple languages by simply including the right language JS file (dist/js/i18n/it.js, dist/js/i18n/nl.js, etc.) after dist/js/select2.js.

Missing a language? Just copy src/js/select2/i18n/en.js, translate it, and make a pull request back to Select2 here on GitHub.


The documentation for Select2 is available through GitHub Pages and is located within this repository in the docs folder.


You can find out about the different ways to get in touch with the Select2 community at the Select2 community page.

Copyright and license

The license is available within the repository in the LICENSE file.

You can’t perform that action at this time.