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.
The widget is available under the dual MIT and GPL licenses.
- 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)
Demo
Features
- 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
Localisation
- All messages are using a string template function to allow localization. To specify a locale template, copy the
/js/locale/ui.multiselect-en.js
template, rename the file (ie: for french,ui.multiselect-fr.js
), open it, and translate the strings, save. Then add the script betweenui.multiselect.js
and your widget initialization script. - For more information about the string template format, read Andrew Hedges' blog.
Known bugs
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.
- ...more?
Limitations
- When switching a
select
list into a JQuery UI Multiselect instance, you should not set theselected
attribute directly to the originaloption
elements, but instead use the publicselect
method 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
Todos...
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
nodeComparator
to all items - Speed improvements...
- ...more?
Contributors
Misc
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.