2014-09-09 16 views
6

Sto usando la casella di riepilogo multiselect bootstrap. Quando l'utente seleziona le opzioni sul multiselect lo mostra correttamente. Ma c'è un'opzione per ripristinare le opzioni selezionate in precedenza. Quando l'utente fa clic sul pulsante di ripristino, automaticamente style=display:none si aggiunge al pulsante a discesa e l'elenco a discesa diventa invisibile.bootstrap multiselect (aggiornamento) non funziona correttamente

Questo è il mio codice

$("#button").click(function() { 

    $('option', $('.multiselect')).each(function (element) { 
     $(this).removeAttr('selected').prop('selected', false); 

    }); 
    $('.multiselect').multiselect('refresh'); 
}); 

risposta

27

Altre opzioni utili sono:

  1. $('Id').multiselect('refresh'); - gli aggiornamenti della la selezione multipla in base alle opzioni selezionate del select.

  2. $('Id').multiselect('destroy'); - Separa l'intero plug-in.

  3. buildFilter: crea il filtro.

  4. buildSelectAll: crea il tutto selezionato.Verifica se è già stata creata una selezione.

  5. $('Id').multiselect('select', ['1', '2', '4']); - Seleziona tutte le opzioni dei valori specificati.

  6. clearSelection: Cancella tutti gli elementi selezionati.

  7. $('Id').multiselect('deselect', ['1', '2', '4']); - Deseleziona tutte le opzioni dei valori specificati.

  8. $('Id').multiselect('selectAll', true); - Seleziona tutte le opzioni visibili attivate &.

  9. $('Id').multiselect('deselectAll', true); - Deseleziona tutte le opzioni.

  10. $('Id').multiselect('rebuild'); - Ricreare il plug-in.

  11. $('Id').multiselect('enable'); - Abilita il multiselect.

  12. $('Id').multiselect('disable'); - Disabilita il multiselect.

  13. hasSelectAll: Controlla se è presente una casella di controllo Seleziona tutto.

  14. updateSelectAll: Aggiorna la casella di controllo Seleziona tutto in base alle caselle di controllo attualmente visualizzate e selezionate.

  15. $('Id').multiselect('updateButtonText'); - Aggiorna il testo del pulsante e il suo titolo in base alle opzioni attualmente selezionate.

  16. getSelected(): ottieni tutte le opzioni selezionate.

  17. getOptionByValue(): Ottiene un'opzione di selezione in base al relativo valore.

  18. $('Id').multiselect('dataprovider', options); - I dati forniti verranno utilizzati per creare il menu a discesa.

per maggiori dettagli visitare bootstrap-multiselect

+0

grazie amico mio :) – Boldbayar

2

Guardate questa documentazione: http://davidstutz.github.io/bootstrap-multiselect/

Per deselezionare un uso un'opzione questo

$('.multiselect').multiselect('deselect', value) 

Quindi chiamare il metodo di aggiornamento

$('.multiselect').multiselect('refresh'); 
+0

sto Deselezionando con successo le opzioni che vengono selezionati in precedenza, ma la mia domanda è quando chiamo $ selezione multipla ('Aggiorna '); (' selezione multipla.'). l'elenco delle opzioni si nasconde perché style = display: nessuno si aggiunge al pulsante a discesa e l'elenco a discesa diventa invisibile. – user3408779

+0

Se utilizzo 'refresh', viene creato un nuovo elemento di multiselect. Perché? – Yebach

+0

Puoi mostrarmelo in un http://jsfiddle.net –

4

Bootstrap Multiselect fallisce se si targetizza la classe in questo modo.

$(".multiselect").multiselect("refresh"); 

Questo succede perché c'è qualcos'altro nel plugin che ha la classe "multiselect". Devi farti sapere, che è solo il select che vuoi scegliere come target.

Quanto segue ha funzionato per me.

$("select.multiselect").multiselect("refresh"); 

Gli stessi conteggi per il metodo "deseleziona".

$("select.multiselect").multiselect("deselectAll", false); 
1

Il mio approccio è quello di distruggere la selezione multipla e poi reinizializzare esso. Questo ha funzionato per me. Fate una prova:

function initMultiSelect(){ 

     $('#yourMultiselectId').multiselect({ 
     includeSelectAllOption: true, 
     selectAllValue: 'select-all-value' 
     }); 
    } 


    $('#button').click(function(e){ 
     e.preventDefault(); 
     $('#yourMultiselectId').multiselect('destroy'); 
     initMultiSelect(); 
    }); 
Problemi correlati