Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ========================================================================
- // Multi Select
- // ========================================================================*/
- /* ------------------------------------------------------------------------
- // Limiter
- // ------------------------------------------------------------------------*/
- function multiSelectLimiterAfterInit(that, container){
- that.selectLimit = (that.$element.attr('data-select-limit') !== "") ? parseInt(that.$element.attr('data-select-limit')) : -1;
- that.selectCount = that.$element.find(':selected').length;
- if(that.$element.data('initialized') !== true && that.selectLimit > -1) {
- that.$element.data('initialized', true);
- multiSelectLimiterUpdate(that);
- }
- }
- function multiSelectLimiterAfterSelect(that, values){
- if(values){
- that.selectCount += values.length;
- }
- multiSelectLimiterUpdate(that);
- }
- function multiSelectLimiterAfterDeselect(that, values){
- if(values){
- that.selectCount -= values.length;
- }
- multiSelectLimiterUpdate(that);
- }
- function multiSelectLimiterUpdate(that){
- var selectedValues = that.$element.val();
- if(that.selectCount >= that.selectLimit){
- that.$element.children().each(function(){
- if(!$.contains(selectedValues, this.value)){
- $(this).attr('disabled', 'disabled');
- }
- });
- that.$selectableUl.children().addClass(that.options.disabledClass);
- }
- else{
- that.$element.children().removeAttr('disabled');
- that.$selectableUl.children().removeClass(that.options.disabledClass);
- }
- }
- /* ------------------------------------------------------------------------
- // Initialize
- // ------------------------------------------------------------------------*/
- $('.searchable').multiSelect({
- afterInit: function(container){
- multiSelectLimiterAfterInit(this, container);
- },
- afterSelect: function(values){
- multiSelectLimiterAfterSelect(this, values);
- },
- afterDeselect: function(values){
- multiSelectLimiterAfterDeselect(this, values);
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement