1
0
mirror of synced 2024-11-21 20:46:07 +03:00
Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
Go to file
Kevin Brown f13ba12bea
allowClear no longer shifts selections to a new line (#5603)
* allowClear no longer shifts selections to a new line

This fixes an issue that we have had with the "x" icon used by the
`allowClear` option where selections that just barely interacted
with the position of the "x" icon would be pushed to a new line
that was separate from the normal second line of selections. This
case was pretty rare, because you only had a ~9px area where the
interaction could occur.

The issue was cuased by the "x" icon being sized for the height of
the text in the selection choices, which should be the same as how
the selection choices themselves are sized. Unfortunately this did
not take into account the fact that the selection choices are given
a 1px border which increases their size by 2px, which is what lead
to the odd behaviour. This behaviour could not be replicated without
the 1px border because the height would then line up correctly.

The issue can be fixed by adding a 2px margin to the bottom of the
"x" icon, which would force overlapping selections on to the correct
second line of selections. This was the method that many users have
been using to correct this issue, but was not the method we chose to
use. A 1px padding has been added to the "x" icon instead, which
should expand the touch area of the "x" by a little while also
increasing the height of the "x" by enough to prevent the overlapping.

Fixes #4470

* Remove hard-coded height in tests

Because tests are executed on different browsers, and because each
browser sets their own line height, we cannot depend on the height
of the default Select2 being consistent across browsers. As a result,
we must write our tests to calcualte the expected height based on
known data. In the case of this test, we can calculate ahead of time
what two rows of selections is supposed to look like, instead of the
edge case that we can otherwise encounter.
2019-08-04 22:03:52 -04:00
.github Enable the Stale integration 2019-03-12 22:07:42 -04:00
dist Recompile dist for 4.0.8 2019-07-20 23:05:45 -04:00
docs update README for /docs 2017-09-10 17:57:07 -04:00
src allowClear no longer shifts selections to a new line (#5603) 2019-08-04 22:03:52 -04:00
tests allowClear no longer shifts selections to a new line (#5603) 2019-08-04 22:03:52 -04:00
.editorconfig Working on rendering everything 2014-10-21 21:43:56 -04:00
.gitignore gitignore .sass-cache. 2015-04-28 01:35:14 +02:00
.jshintignore Overhaul of the AMD integration 2015-03-14 19:05:24 -04:00
.jshintrc Migrate from expect to assert.expect 2016-05-23 23:38:45 -04:00
.travis.yml Update dev dependencies (#5529) 2019-06-04 21:18:37 -04:00
bower.json Add license to bower.json 2016-11-03 11:23:50 +01:00
CHANGELOG.md Update changelog for 4.0.8 2019-07-20 23:09:14 -04:00
component.json Bump versions for 4.0.8 release 2019-07-20 23:02:46 -04:00
composer.json Update composer to remove deprecated dependency (#5165) 2019-03-18 22:36:26 -04:00
Gruntfile.js Update dev dependencies (#5529) 2019-06-04 21:18:37 -04:00
LICENSE.md update version in package manager config files 2017-09-06 17:05:28 -04:00
package.json Updated grunt version so it no longer shows as vulnerable (#5597) 2019-08-04 01:58:52 -04:00
README.md Clean up docs (#5528) 2019-06-04 20:46:45 -04:00

Select2

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 https://select2.org/

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+

Usage

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.

Integrations

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.

Plugins

Themes

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.

Documentation

The documentation for Select2 is available through GitHub Pages and is located within the separate select2/docs repository.

Community

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

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