2014-12-15 10 views
5

Sto usando il selectpicker plugin. Ora sto provando a selezionare tutte le opzioni per impostazione predefinita, o almeno un pulsante per selezionare tutto senza la necessità di fare clic nel menu a discesa.selectpicker con select all di default

Attualmente la demo funziona solo se si fa clic sul menu a discesa e, successivamente, fare clic sul pulsante.

Qualche idea?

$('.selectpicker').selectpicker(); 


$(".btn_clk").click(function() { 
    $('.selectpicker').selectpicker('selectAll'); 
}); 

http://jsfiddle.net/tpnw96ed/

+0

A quanto pare questo è stato sollevato come un bug già: https://github.com/silviomoreto/bootstrap-select/issues/721 – athms

risposta

1

la soluzione in questo thread funziona per me.

ecco il codice aggiornata del plugin:

Linea 888 e 895 in boostrapt-select.js

selectAll: function() { 
    this.findLis(); 
    this.$lis.not('.divider').not('.disabled').not('.selected').not('.hide').find('a').click(); 
}, 

deselectAll: function() { 
    this.findLis(); 
    this.$lis.not('.divider').not('.disabled').filter('.selected').not('.hide').find('a').click(); 
}, 

nota il cambiamento .filter(':visible') è ora .not('.hide')

1

Prova questo:

$('.selectpicker').selectpicker('val', ['Mustard','Relish', 'Ketchup']); 
+5

questo non è davvero mantenibile , è? – jao

4

È possibile aprire/chiudere il Selectpicker prima/dopo aver fatto clic sul pulsante:

$(".btn_clk").click(function() { 
    $('.dropdown-menu').css("display","block"); 
    $('.selectpicker').selectpicker('selectAll'); 
    $('.dropdown-menu').css("display","none"); 
}); 

Edit: Sarà inoltre è necessario aggiungere quanto segue per attivare manualmente il dropdo wn sui clic dopo un selectAll:

$('.selectpicker').click(function() { 
    if($('.dropdown-menu').css("display") == "block") $('.dropdown-menu').css("display","none"); 
    else $('.dropdown-menu').css("display","block"); 
}); 

JSFIDDLE

+2

Sì, questa è una soluzione a questo bug: https://github.com/silviomoreto/bootstrap-select/issues/721 – athms

+0

Sembra che questo sia l'unico modo ... C'è un metodo show, ma questo non sembra lavorare. E selezionerà solo tutti gli elementi quando il menu a discesa è aperto. – jao

+0

il menu a discesa verrà interrotto dopo il clic, giusto? – user2990084

1

Non c'è modo di default per aggiungere Seleziona tutto e Deseleziona tutti i pulsanti per selezionare ora il download. Si consiglia di utilizzare l'opzione data-actions-box="true" per abilitare i pulsanti e data-select-all-text="Select all buttton name" data-deselect-all-text="Deselect all button name" rinominarli

Problemi correlati