Ho un cliente che vuole offrire agli utenti la possibilità di selezionare fino a 5 opzioni aggiuntive da un elenco. Mi piace il concetto Chosen.js, ma come posso limitare la selezione? Suppongo che una soluzione sia quella di usare onChange per contare il numero selezionato e quindi disabilitare il resto, ma esiste una soluzione migliore?Chosen.js - è possibile limitare il numero di elementi selezionati?
risposta
Chosen fornisce un max_selected_options
per consentire di fare questo:
$(".chzn-select").chosen({ max_selected_options: 5 });
D'oh! Come mi sono perso? Cosi 'semplice. –
Ora il cliente ha cambiato idea e vuole farlo con le caselle di controllo. Grazie a @mccannf per questa soluzione, sarà ricordato per un altro giorno. –
@mccannf possiamo cambiare il max_selected_options dopo la configurazione iniziale? non sembra funzionare se si tenta di cambiare max_selected_options –
max_selected_options: 5 non funziona nel mio caso. Così ho risolto come segue.
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--;
}
});
Provalo. Funziona molto bene.
non è necessario disabilitare altre opzioni, è possibile deselezionare l'opzione che viene sesto alla selezione e mostrare un messaggio ... – shin