selectize.js
Tom Select was forked from selectize.js with four main objectives: modernizing the code base, decoupling from jQuery, expanding functionality, and addressing issue backlogs.
Highlights as of v1.1.0
New
- support for external control input
- dropdownParent other than 'body'
- no_backspace_delete plugin
- framework agnostic design (works without jQuery or any other JavaScript framework)
- improved keyboard control of selected items
- improved option cache to reduce dom manipulation during searches
- animated scrolling with css instead of JavaScript
- improved ctrl/shift/cmd key detection
- autogrow functionality moved to input_autogrow plugin
- integrated plugin hooks
Fixed
- #1363 Autofill disable possibility
- #1447 Enhancement - dropdownParent
- #1279 Adding ability to use load to init opt groups
- #838 Add option to disable delete on backspace (no_backspace_delete plugin)
- #239 Preserve custom HTML5 data attributes
- #1128 Duplicated options in different optgroups doesn't render correctly
- #129 Allow duplicate values in an input
- #470 "No results found" message
- #999 Don't clear the text box value on blur
- #1104 Replace values in single-item selection
- #1132 Can't enter 'ą' character in tags mode
- #102 Listen to original select changes (via 'change_listener' plugin)
- #905 Support for Bootstrap 4
Breaking Changes
- .ts-* css class names instead of .selectize-* (customizable with scss & js)
- scss instead of less
- dataAttr defaults to null instead of "data-data"
- options must be appended to optgroup within custom optgroup template
- removed support for older browsers including IE11
Development Environment
- code converted to TypeScript (Tom Select 1.1+)
- compiled with Babel
- bundled with rollup.js
- examples and documentation generated using 11ty
- tests run on Browserstack