Bootstrap-multiselect: Reset event

Created on 9 Jun 2018  路  8Comments  路  Source: davidstutz/bootstrap-multiselect

It seems that reset button doesn't trigger any special event. Shouldn't there be onReset event handler or at least onDeselectAll triggered?

Most helpful comment

for trigger event on each multi-select

add

function Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }

````
Multiselect.prototype = {
defaults: {
...

 /**
  * Triggered on Reset.
 */
 onReset: function() {

 },

....

}
}
````

buildReset: function() { ... $('a', $resetButton).click($.proxy(function(){ this.clearSelection(); this.options.onReset(); }, this)); ... }

And in your multi-select instance:

$('#mySelect').multiselect({ .... onReset: function() { console.log('onReset clicked!'); } ... })

All 8 comments

Hi
Have you found a solution ?

Yeah, but it ain't pretty (JSFiddle):

function changeHandler($select) {
    var $selected_options = $select.find('option:selected')

    // and so on
}

$('select').multiselect(
    {
        includeResetOption: true,
        onChange: function () {
            changeHandler(this.$select)
        }
    }
)

$('.multiselect-reset')
    .on(
        'click',
        function () {
            changeHandler(
                $(this).closest('.multiselect-native-select').find('select')
            );
        }
    );

Thank you very much

$('.multiselect-reset').on('click', function () { alert('reset'); });

Have a nice day.
Christophe From France

how to hook the event to the specific multi-select dropdown in case there are more than one?

I tried with id and class name, but it doesn't work.

for trigger event on each multi-select

add

function Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }

````
Multiselect.prototype = {
defaults: {
...

 /**
  * Triggered on Reset.
 */
 onReset: function() {

 },

....

}
}
````

buildReset: function() { ... $('a', $resetButton).click($.proxy(function(){ this.clearSelection(); this.options.onReset(); }, this)); ... }

And in your multi-select instance:

$('#mySelect').multiselect({ .... onReset: function() { console.log('onReset clicked!'); } ... })

Hey @denniscastro thanks a lot for your solution. works perfectly with multiple dropdowns.

for trigger event on each multi-select
add

function Multiselect(select, options) {
  ...
  this.options.onReset = $.proxy(this.options.onReset, this);
  ...
}

```
Multiselect.prototype = {
defaults: {
...
/**
* Triggered on Reset.
*/
onReset: function() {
},
....
}
}


buildReset: function() {
...
$('a', $resetButton).click($.proxy(function(){
this.clearSelection();
this.options.onReset();
}, this));
...
}

And in your multi-select instance:

$('#mySelect').multiselect({
....
onReset: function() {
console.log('onReset clicked!');
}
...
})
```

Thanks for your solution, but I'm not sure how to implement it.. or where all these parts go. What are the "...." in the code?

Below is all the code I have for a multiple-select dropdown, which is the last part of your example. I don't know where to put the other parts. Thanks in advance.

$('#kwh,#year').multiselect({
 includeResetOption: true,
 onDropdownHide: function(option, checked, select) {
     <do stuff>
    }
 },
  onChange: function(option, checked, select) {
             <do stuff>
       }
});

@HankLloydRight
You will have to modify the bootstrap-multiselect.js itself.
Then you reference that one rather on your html page.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

petukhov-ds picture petukhov-ds  路  6Comments

sourav-prescriber-360 picture sourav-prescriber-360  路  8Comments

mirroras picture mirroras  路  3Comments

naxxateux picture naxxateux  路  5Comments

psyclight picture psyclight  路  4Comments