2014-12-15 9 views
5

Ich benutze den Selectpicker plugin. Jetzt versuche ich, alle Optionen standardmäßig auszuwählen, oder zumindest eine Schaltfläche, um alle auszuwählen, ohne dass ein Klick in das Dropdown-Menü erforderlich ist.selectpicker mit allen standardmäßig auswählen

Derzeit funktioniert die Demo nur, wenn auf das Dropdown-Menü geklickt wird und danach auf die Schaltfläche.

Irgendeine Idee?

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


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

http://jsfiddle.net/tpnw96ed/

+0

umbenennen Offenbar dies als Fehler bereits angesprochen wurde: https://github.com/silviomoreto/bootstrap-select/issues/721 – athms

Antwort

1

Die Lösung in diesem thread funktioniert für mich. Hier

ist der aktualisierte Code des Plugins:

Linie 888 und 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(); 
}, 

Hinweis .filter(':visible') die Änderung jetzt ist .not('.hide')

1

Try this:

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

Das ist nicht wirklich wartbar , ist es? – jao

4

Sie/öffnen können die Selectpicker schließen vor/nach dem Anklicken der Schaltfläche:

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

Edit: Sie auch müssen Sie Folgendes hinzufügen, um das Dropdo manuell auszulösen wn auf Klicks nach einem selectAll:

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

JSFIDDLE

+2

Ja, das ist ein Workaround für diesen Fehler: https://github.com/silvomoreto/bootstrap-select/issues/721 – athms

+0

Es scheint, das ist der einzige Weg ... Es gibt eine Show-Methode, aber das scheint nicht arbeiten. Und es werden nur alle Elemente ausgewählt, wenn das Dropdown geöffnet ist. – jao

+0

das Dropdown wird nach dem Klick abgebrochen, oder? – user2990084

1

Es gibt Standardmethode Select All hinzufügen und Deaktivieren Sie alle Schaltflächen, um jetzt auszuwählen. Sie sollten data-actions-box="true" Option verwenden, um Tasten zu aktivieren und data-select-all-text="Select all buttton name" data-deselect-all-text="Deselect all button name" sie

Verwandte Themen