It depends on jQuery 1.4.2 and jQuery UI 1.8. The widget is styleable using Themeroller. It works in an unobtrusive fashion, by just turning html multiple select inputs into a sexier equivalent. There's no extra markup needed.
Localisation support is done through the localization plugin available here.
- For installation instructions please have a look at the corresponding blogpost
- Source code is available at Github
- In case you are looking for the original version, it has been moved here
- Official Bleeding Edge Demo is always available here (thanks to Github Pages)
(Match option values, not text)
- Search within available options, if there are a lots of them
- Remote search if too many items, with custom parameters to control remote script
- Displaying counts of selected and available items
- Select All / Deselect All Buttons
- Drag 'n drop support using droppables and/or sortables independantly
- List sorting and node events callbacks for more customizations
- All messages are using a string template function to allow localization. To specify a locale template, copy the
/js/locale/ui.multiselect-en.jstemplate, rename the file (ie: for french,
ui.multiselect-fr.js), open it, and translate the strings, save. Then add the script between
ui.multiselect.jsand your widget initialization script.
- For more information about the string template format, read Andrew Hedges' blog.
Drag'n'drop may not select items properly. The problem is more apparaent when the containers are sortable. Talking about sortables, they are not sorted correctly 90% of the time....
- The widget may trigger an error inside JQuery itself ...but Seems to be fixed, please report if the problem occurs.
- When switching a
selectlist into a JQuery UI Multiselect instance, you should not set the
selectedattribute directly to the original
optionelements, but instead use the public
selectmethod provided with the widget.
- When selecting all items (or select none) needs to transfer hundreds of elements from one list to the other, there may be script execution timeout errors. Stopping script execution should not have significant impact on stability, but is in itself annoying to the user. Improvement on the item cache system is on the todo list
Here's a list of features that may or may not be implemented in future releases (no specific versions).
- Support for option groups and disabled options (currently ignored)
- Restore selected options on page reload for options found via remote search calls
- Add a
sort public method to apply the
nodeComparatorto all items
- Speed improvements...
There are no limitations. Do whatever you want with this plugin. If you did some nice modifications, just let us know (via Github). We'd be happy to review them, and perhaps include them.