2013-01-11 14 views
5

Mam klienta, który chce dać użytkownikom opcję wyboru do 5 dodatkowych opcji z listy. Podoba mi się koncepcja Chosen.js, ale jak mogę ograniczyć wybór? Przypuszczam, że jednym z rozwiązań jest użycie OnChange, aby policzyć wybraną liczbę, a następnie wyłączyć resztę, ale czy jest jakieś fajniejsze rozwiązanie?Chosen.js - czy można ograniczyć liczbę wybranych elementów?

+0

Nie trzeba wyłączać innych opcji, można odznaczyć opcję, która przychodzi szóstą pozycję do wyboru i wyświetlać komunikat ... – shin

Odpowiedz

11

Chosen zapewnia max_selected_options, co pozwala, aby to zrobić:

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

D'oh! Jak to przegapiłem? Tak prosty. –

+0

Teraz klient zmienił zdanie i chce to zrobić przy użyciu pól wyboru. Dzięki @mccannf dla tego rozwiązania, zostanie zapamiętany na inny dzień. –

+0

@mccannf Czy możemy zmienić max_selected_options po wstępnej konfiguracji? to nie działa, jeśli spróbujesz zmienić max_selected_options –

0

max_selected_options: 5 nie działa w moim przypadku. Więc naprawiłem w następujący sposób.

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--; 
    } 
}); 

Wypróbuj. Działa bardzo gładko.

Powiązane problemy