 
    
    
    
    
    This is a small jQuery plugin that helps you improve the user experience regarding the use of multiple cross selects.
It is very easy to install and can be easily customized because it has callbacks for many events, such as :
It also has a sort function that can be defined in order of your needs for each multiple select.
You can fully customize it via CSS, you can extend it and have as many multi selects as you want on the page.
| Name | type | default | description | 
|---|---|---|---|
| right | stringjQuery selector | multiselect_id_to | The selectwhere the options are moved to | 
| rightSelected | stringjQuery selector | multiselect_id_rightSelected | The buttonthat moves selected options from left to right | 
| rightAll | stringjQuery selector | multiselect_id_rightAll | The buttonthat moves all options from left to right | 
| leftSelected | stringjQuery selector | multiselect_id_leftSelected | The buttonthat moves selected options from right to left | 
| leftAll | stringjQuery selector | multiselect_id_leftAll | The buttonthat moves all options from right to left | 
| undo | stringjQuery selector | multiselect_id_undo | The buttonthat triggers the undo action | 
| redo | stringjQuery selector | multiselect_id_redo | The buttonthat triggers the redo action | 
| moveUp | stringjQuery selector | multiselect_id_move_up | The buttonthat move options from right side to the top | 
| moveDown | stringjQuery selector | multiselect_id_move_down | The buttonthat move options from right side to the bottom | 
| startUp | functionorfalse | removefrom left all options that are present in right | Whatever you want to do with $leftand$rightelements when themultiselectplugin is initialised | 
| sort | functionorfalse | sortoptions alphabetically | Will sort options when an action happend into right or left elements. | 
| beforeMoveToRight | function | return true | Whatever you want to do with $left,$rightand$optionselements before they are moved to right.beforeMoveToRight: function($left, $right, $options) { ...; return Boolean; }.
 
 | 
| moveToRight | function | return this | If you want to define your own moveToRightfunctionality you can do this by definingmoveToRight: function(Multiselect, $options, event, silent, skipStack) { ... }
 | 
| afterMoveToRight | function | no action | Whatever you want to do with $left,$rightand$optionselements after they are moved to right.afterMoveToRight: function($left, $right, $options) { ...; }
 | 
| beforeMoveToLeft | function | return true | Whatever you want to do with $left,$rightand$optionselements before they are moved to left.beforeMoveToLeft: function($left, $right, $options) { ...; return Boolean; }.
 
 | 
| moveToLeft | function | return this | If you want to define your own moveToLeftfunctionality you can do this by definingmoveToLeft: function(Multiselect, $options, event, silent, skipStack) { ... }
 | 
| afterMoveToLeft | function | no action | Whatever you want to do with $left,$rightand$optionselements after they are moved to right.afterMoveToLeft: function($left, $right, $options) { ...; }
 | 
| beforeMoveUp | function | return true | Whatever you want to do with $optionselements before they are moved up.beforeMoveUp: function( $options) { ...; return Boolean; }.
 
 | 
| afterMoveUp | function | no action | Whatever you want to do with $optionselements after they are moved up.afterMoveUp: function($options) { ...; }
 | 
| beforeMoveDown | function | return true | Whatever you want to do with $optionselements before they are moved down.beforeMoveDown: function( $options) { ...; return Boolean; }.
 
 | 
| afterMoveDown | function | no action | Whatever you want to do with $optionselements after they are moved down.afterMoveDown: function($options) { ...; }
 | 
| keepRenderingSort | boolean | false | When you want to keep options sorted as they was rendered, keepRenderingSortmust betrue.When keepRenderingSortistrue,sortfunction will be ignored. | 
| submitAllLeft | boolean | true | When you don’t want to send all options from the left side to server, submitAllLeftmust befalse. | 
| submitAllRight | boolean | true | When you don’t want to send all options from the right side to server, submitAllRightmust befalse. | 
| search | Object | null | When you want to have search fields for leftandrightelements you can do this by providing following value:
search: {
    left: '<input type="text" name="q" class="form-control" placeholder="Search..." />',
    right: '<input type="text" name="q" class="form-control" placeholder="Search..." />',
}
When you want to have search field only forleftelement you can do this by providing following value:
search: {
    left: '<input type="text" name="q" class="form-control" placeholder="Search..." />',
}
 | 
| fireSearch | function | return trueif search length is great than 1 | Tell to multiselect when to start applying the search. fireSearch: function(value) { ...; return Boolean; }
 |