2015-02-10 18 views
6

C'è già una domanda con un sacco di voti per ottenere il valore selezionato da un menu a discesa utilizzando jQuery here.Ottenere un elenco dei valori selezionati in un ListBox

Questa risposta funziona quasi per una casella di riepilogo, ma se sono selezionati più valori, il risultato è una singola stringa con tutti i valori concatenati. Questo non è utile. Ho bisogno di una collezione (lista, array, qualunque) dei valori di testo per ciascuna opzione selezionata.

Al momento sto pensando che userò la maggior parte della risposta da quell'altra domanda, ma senza il .text() alla fine, e quindi scorrere le partite. Idee migliori?

risposta

10

È possibile effettuare più selezioni di testo tramite il ciclo di iterazione come indicato di seguito.

$('#f1').click(function(){  
    var rr = []; 
    $('.selectpicker :selected').each(function(i, selected){ 
     rr[i] = $(selected).text(); 
    }); 
    alert(rr); 
}); 

O se si vuole utilizzare è valore poi semplicemente scrivere.

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

Demo

+0

Sì, ci vorrà tutta l'opzione selezionata dal menu a discesa. – Sadikhasan

+0

Semplicemente usando .val mi fa esattamente quello che voglio, dato che in questo caso il testo e il valore per ogni opzione sono gli stessi – DCShannon

+0

A volte .val() restituisce un array di stringhe, che è quello che voglio, e altre volte è restituire un array di DispHTMLOptionElement. Sembra casuale. – DCShannon

1

È possibile utilizzare, come di seguito:

var selectedVal= []; 
$('#multiple :selected').each(function(i, selected){ 
    selectedVal[i] = $(selected).text(); 
    alert(selectedVal[i]); 
}); 

Here is Tutorial and example

+1

upvote per il tutorial, ma il resto della soluzione è lo stesso di quello già pubblicato – DCShannon

+0

ya..cio penso che questo sia il modo per ottenere il valore selezionato. spero che tu abbia una soluzione. –

Problemi correlati