Parece que o botão de reset não aciona nenhum evento especial. Não deveria haver onReset
manipulador de eventos ou pelo menos onDeselectAll
acionado?
Oi
Você encontrou uma solução ?
Sim, mas não é bonito ( 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')
);
}
);
Muito obrigado
$('.multiselect-reset').on('click', function () {
alert('reset');
});
Tenha um bom dia.
Christophe da França
como conectar o evento à lista suspensa de seleção múltipla específica no caso de haver mais de um?
Tentei com id e nome de classe, mas não funcionou.
para evento acionador em cada seleção múltipla
adicionar
function Multiselect(select, options) {
...
this.options.onReset = $.proxy(this.options.onReset, this);
...
}
`` ``
Multiselect.prototype = {
padrões: {
...
/**
* Triggered on Reset.
*/
onReset: function() {
},
....
}
}
`` ``
buildReset: function() {
...
$('a', $resetButton).click($.proxy(function(){
this.clearSelection();
this.options.onReset();
}, this));
...
}
E em sua instância multisseleção:
$('#mySelect').multiselect({
....
onReset: function() {
console.log('onReset clicked!');
}
...
})
Olá @denniscastro, muito obrigado pela sua solução. funciona perfeitamente com vários menus suspensos.
para evento acionador em cada seleção múltipla
adicionarfunction Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }
`` `
Multiselect.prototype = {
padrões: {
...
/ **
* Disparado na reinicialização.
* /
onReset: function () {
},
....
}
}
buildReset: function () {
...
$ ('a', $ resetButton) .click ($. proxy (function () {
this.clearSelection ();
this.options.onReset ();
}, isto));
...
}And in your multi-select instance:
$ ('# mySelect'). multiselect ({
....
onReset: function () {
console.log ('onReset clicado!');
}
...
})
`` `
Obrigado pela sua solução, mas não tenho certeza de como implementá-la .. ou para onde vão todas essas partes. O que são "...." no código?
Abaixo está todo o código que tenho para uma lista suspensa de seleção múltipla, que é a última parte do seu exemplo. Não sei onde colocar as outras peças. Desde já, obrigado.
$('#kwh,#year').multiselect({
includeResetOption: true,
onDropdownHide: function(option, checked, select) {
<do stuff>
}
},
onChange: function(option, checked, select) {
<do stuff>
}
});
@HankLloydRight
Você terá que modificar o próprio bootstrap-multiselect.js.
Em seguida, você faz referência a esse em sua página html.
Comentários muito úteis
para evento acionador em cada seleção múltipla
adicionar
function Multiselect(select, options) { ... this.options.onReset = $.proxy(this.options.onReset, this); ... }
`` ``
Multiselect.prototype = {
padrões: {
...
}
}
`` ``
buildReset: function() { ... $('a', $resetButton).click($.proxy(function(){ this.clearSelection(); this.options.onReset(); }, this)); ... }
E em sua instância multisseleção:
$('#mySelect').multiselect({ .... onReset: function() { console.log('onReset clicked!'); } ... })