2013-01-11 16 views
5

Ich habe einen Client, der Benutzern die Möglichkeit geben möchte, bis zu 5 zusätzliche Optionen aus einer Liste auszuwählen. Ich mag das Chosen.js-Konzept, aber wie kann ich die Auswahl einschränken? Ich nehme an, eine Lösung besteht darin, mit onChange die ausgewählte Zahl zu zählen und dann den Rest zu deaktivieren, aber gibt es eine bessere Lösung?Chosen.js - ist es möglich, die Anzahl der ausgewählten Elemente zu begrenzen?

+0

Sie müssen nicht andere Optionen deaktivieren, können Sie die Option deaktivieren, die 6. zur Auswahl kommt und eine Nachricht anzeigen ... – shin

Antwort

11

Chosen ein max_selected_options, damit Sie, dies zu tun:

$(".chzn-select").chosen({ max_selected_options: 5 }); 
+0

D'oh! Wie habe ich das vermisst? So einfach. –

+0

Jetzt hat der Klient seine Meinung geändert und will es stattdessen mit Checkboxen machen. Dank @mccannf für diese Lösung, wird für einen weiteren Tag in Erinnerung bleiben. –

+0

@mccannf können wir die max_selected_options nach der Ersteinrichtung ändern? Es scheint nicht zu funktionieren, wenn Sie versuchen, max_selected_options zu ändern –

0

max_selected_options: 5 ist nicht in meinem Fall arbeiten. Also habe ich wie folgt behoben.

var countSelect = 0; 
$(".chosen-select").chosen().change(function (e, params) {   
    if(params.deselected != undefined) { countSelect--; } 
    if(params.selected != undefined) { countSelect++; } 
    if(countSelect > 3) {   
     $('.chosen-select option[value="'+params.selected+'"]').attr('selected', false); 
     $(this).trigger('chosen:updated'); 
     countSelect--; 
    } 
}); 

Versuchen Sie es. Es funktioniert sehr glatt.

Verwandte Themen