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

rodrigonunes100 picture rodrigonunes100  路  3Comments

mirroras picture mirroras  路  3Comments

CodeBrauer picture CodeBrauer  路  4Comments

psyclight picture psyclight  路  4Comments

ingenierotecnico picture ingenierotecnico  路  7Comments