2013-09-25 12 views
10

Ich benutze das Bootstrap-Multiselect-Drop-Down-Menü anstelle der Anzahl der angezeigten Listen, wenn alle Optionen ausgewählt sind, können wir den All Selected-Text anzeigen.Wie ändert man die Bootstrap-Multiselect-Label statt alle ausgewählten?

http://davidstutz.github.io/bootstrap-multiselect/

+1

Post einige Code, was Sie bisher versucht haben? – Pratik

+0

Ich habe versucht, zu debuggen, aber es scheint, es verwendet direkt jquery.js. Es sieht nicht wie benutzerdefinierte Inhalte aus. Es sieht falsch aus, aber seltsam. Wenn Sie es vor 3 Auswahlen herausfinden können, können Sie es selbstverständlich auf 4,5,6 erweitern. – mithataydogmus

Antwort

1

I 3. Taste s geändert (Hauch Taste: Mehrfachauswahl mit einer Option 'Alle auswählen') ID Test. Es funktioniert, aber Sie müssen zuerst die ID zur Schaltfläche aus den Entwicklertools hinzufügen (Chrome/Firefox F12 hinzufügen).

$('#test+ul>li').change(function(){ 
    $('#test').text($('#test').attr('title')); 
}); 

Sie können es testen, nachdem Sie die ID hinzugefügt haben. Bitte benutze danach jsfiddle.net. Sie können schneller Hilfe finden.

15

Wenn jemand diese Frage in Zukunft treffen, ist die Lösung

ändern
{ nonSelectedText: 'None selected' } 

eine globale Variable zu diesem Text zuweisen es durch JavaScript ändern.

Wert befindet sich in bootstrap-multiselect.js Datei.

+0

Ich bin froh, dass ich gescrollt habe, das funktioniert perfekt. Sie können 'noneSelectedText' für jedes neue Multiselect-Objekt festlegen, wenn Sie mehrere haben. Vielen Dank! –

+0

froh, dass es geholfen hat .. :) –

10

Sie können "Label" ändern (von Bootstrap-Multiselect) Text für alle 4 Fälle "keine Angabe", "n ausgewählt", "Alle" Ausgewählten oder "ausgewählte Werte" wie folgt:

JQuery

$('#level').multiselect({ 
    includeSelectAllOption: true, 
    maxHeight: 150, 
    buttonWidth: 150, 
    numberDisplayed: 2, 
    nSelectedText: 'selected', 
    nonSelectedText: 'None selected', 
    buttonText: function(options, select) { 
     var numberOfOptions = $(this).children('option').length; 
     if (options.length === 0) { 
     return nonSelectedText + ' <b class="caret"></b>'; 
     } 
     else{ 
      if (options.length > numberDisplayed) { 
       if(options.length === numberOfOptions){ 
        return ' All Selected' + ' <b class="caret"></b>'; 
       } 
       return options.length + ' ' + nSelectedText + ' <b class="caret"></b>'; 
      }else { 
       var selected = ''; 
       options.each(function() { 
        var label = ($(this).attr('label') !== undefined) ? 
                 $(this).attr('label'):$(this).html(); 
        selected += label + ', '; 
       }); 
       return selected.substr(0, selected.length - 2) + ' <b class="caret"></b>'; 
      } 
     } 
    } 
}); 

HTML

<select multiple="multiple" id="level"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 

Es funktioniert für mich. Habe Spaß!

+0

Irgendwie funktioniert der ganze ausgewählte Teil nicht für mich und fällt in den nAusgewählten Teil ... Grundsätzlich funktionieren die options.length === numberOfOptions nicht wie es soll, ich weiß nicht was kann falsch sein .. Hast du einen Vorschlag? – Ekin

3

Verwenden Sie init obj Optionen.

$("#services").multiselect({ 
    nonSelectedText:'Services' 
}); 

Diese Option funktionierte für mich.

+0

Es gibt einen Tippfehler, die Eigenschaft heißt 'nonSelectedText' –

3

Verwendung Daten-Platzhalter

<select data-placeholder="Month"> 

für mich Diese Arbeit.

+0

Scheint überhaupt nicht zu funktionieren. Welche Version verwendest du? – mdrozdziel

1

Philipps Antwort funktionierte für mich, aber nur um es ein wenig vollständiger zu machen, sollte es auf Dokument bereit sein. So ist die Lösung für mich, einschließlich der Einrichtung mehrere Listen war:

$(document).ready(function() { 
    $("#bedrooms").multiselect({ 
     nonSelectedText:'Bedrooms' 
    }); 
    $("#bathrooms").multiselect({ 
     nonSelectedText:'Bathrooms' 
    }); 
    $("#garages").multiselect({ 
     nonSelectedText:'Garages' 
    }); 
    $("#livingareas").multiselect({ 
     nonSelectedText:'Living Areas' 
    }); 
}); 
2

die official documentation Folgende:

allSelectedText der Text, wenn alle Optionen ausgewählt angezeigt wird, sind. Sie können die allSelectedText Anzeige deaktivieren, indem Sie es auf false setzen.

Verwendung Option

{ 
... 
allSelectedText: false, 
... 
} 
+2

Wenn Sie eine Antwort geben, ist es vorzuziehen, [eine Erklärung dafür zu geben, WARUM Ihre Antwort] (http://stackoverflow.com/help/how-to-answer) die eine ist. –

Verwandte Themen