🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

A progressive enhancement to select multiple form elements using jQuery that makes it much easier to use. This enhancement automatically hides the original select multiple, and instead presents a regular select showing the available options, and an HTML list showing the already-selected options. While hidden, the original select multiple is updated as the user makes changes.No Ctrl/Cmd-Clicking is necessary to select multiple items, and an accidental click is not destructive. You add or remove items one at a time. Only the already-selected items occupy screen real estate, as they should. A remove link is included with each selected item, which eliminates ambiguity. Viewing and choosing a new item to add requires clicking on the select. This action is inherently more familiar, and displays many more available options at once, than a select multiple. More is seen at a glance and less scrolling (if any) is required to see all available options.Optionally, this type of select is sortable, giving it hierarchy. The user can drag and drop the items to the desired order.

Drag_Drop Forms Plugins

Documentation

bsmSelect - Better Select Multiple

based on asmSelect - Alternate Select Multiple by Ryan Cramer

Demo

bsmSelect demo

Usage

Include jquery, bsmSelect, and css in document head:

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.bsmselect.js"></script> <link rel="stylesheet" type="text/css" href="jquery.bsmselect.css" /> 

Use a jQuery selector in your document ready function:

jQuery(function($) {     $("select[multiple]").bsmSelect(); }); 

If desired, you can specify options when you call the plugin:

jQuery(function($) {     $("select[multiple]").bsmSelect({         addItemTarget: 'top'     }); }); 

The newly created select default option is the original select title attribute:

<select name="cities" multiple="multiple" title="Please select a city"> ... </select> 

Requirements

  • jQuery 1.4+ (you might need a newer version for IE9 compatibility)

Options

Primary Options

  • listType:

    • Specify what list will be created or used as part of the bsmSelect.
    • Can accept a callback that accepts the original as an argument and returns a jQuery object with a single list. Allowed values: 'ol' 'ul' function(originalSelect) { // your code; return $('<ul>'); } Default: 'ol' highlightEffect: Show a quick highlight of what item was added or removed? Allowed values: an animation function Default: $.noop (no effect) showEffect: Animate the addition of an item to the list Allowed values: an animation function Default: $.bsmSelect.effects.show hideEffect: Animate the removal of an items from the list Allowed values: an animation function Default: $.bsmSelect.effects.remove hideWhenAdded: Stop showing in select after item has been added? Allowed values: true or false Default: false Note: Only functional in Firefox 3 at this time. addItemTarget: Where to place new selected items that are added to the list. Allowed values: 'top' or 'bottom' or 'original' to keep the original select sort order Default: 'bottom' Note: When using the 'original' mode, the sort order can be overriden by setting the 'bsm-order' data on each option. debugMode: Keeps original select multiple visible so that you can monitor live changes made to it when debugging. Default: false extractLabel: A function to compute the list element name from the option object Default: extract the option html plugins An array of plugins objects to enable (they only are required to have an init method which is called on init with the Bsmselect instance as single argument). Default: an empty array (no plugin enabled by default) Text Labels title Text used for the default select label (when original select title attribute is not set) Default: 'Select...' removeLabel: Text used for the remove link of each list item. Default: 'remove' highlightAddedLabel: Text that precedes highlight of item added. Default: 'Added: ' highlightRemovedLabel: Text that precedes highlight of item removed. Default: 'Removed: ' Modifiable CSS Classes containerClass: Class for container that wraps the entire bsmSelect. Default: 'bsmContainer' selectClass: Class for the newly created .
    • Default: 'bsmSelect'
  • listClass:

    • Class for the newly created list of listType (ol or ul).
    • Default: 'bsmList'
  • listSortableClass:

    • Another class given to the list when sortable is active.
    • Default: 'bsmListSortable'
  • listItemClass:

    • Class given to the
    • list items.
    • Default: 'bsmListItem'
  • listItemLabelClass:

    • Class for the label text that appears in list items.
    • Default: 'bsmListItemLabel'
  • removeClass:

    • Class given to the remove link in each list item.
    • Any element found in the
    • with this class will remove it.
    • If you give the
    • this class, clicking anywhere on the
    • will remove it.
    • Default: 'bsmListItemRemove'
  • highlightClass:

    • Class given to the highlight .
    • Default: 'bsmHighlight'

Authors and contributors

History

see history.md.

Related Projects


You May Also Like