2012-10-08 11 views
14
<!DOCTYPE html> 
<html> 
<script> 
function getValue() 
{ 
  var x=document.getElementById("sel"); 
    for (var i = 0; i < x.options.length; i++) { 
    if(x.options[i].selected ==true){ 
      alert(x.options[i].selected); 
     } 
    } 
} 
</script> 
</head> 
<body> 
<select multiple="multiple" id="sel"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="button" value="Get Value" onclick="getValue()"/> 
</body> 
</html> 

Questo è il mio codice. come ottengo tutti i valori selezionati dalla lista usando javascript. Il codice sopra mostra che mostra vero per tutto il valore selezionato.come ottenere più valori selezionati e articoli da listbox utilizzando javascript

risposta

17

Sostituire

if(x.options[i].selected ==true){ 
     alert(x.options[i].selected); 
    } 

con

if(x.options[i].selected){ 
     alert(x.options[i].value); 
    } 
+0

il suo funzionamento grazie :) –

+0

E 'inutile usare 'if (x.options [i] = .selected = true) 'invece di' if (x.options [i] .selected) ', ma potrebbe avere senso' if (x.options [i] .selected === true) 'o' if (!! x. opzioni [i] .selezionate) ' – Oriol

6

vi suggerisco di farlo utilizzando jQuery come questo:

var selected = $('#sel option:selected'); 

Se si preferisce non utilizzare jQuery quindi ignorare questa risposta e fare riferimento agli altri

+6

La domanda richiede una soluzione JavaScript e non è taggato * jQuery * – Phil

+1

@Phil Solo facendo un suggerimento, l'utente può ignorarlo se non usa jQuery, ma può anche presentargli un accesso DOM facile che può prendere in considerazione. –

+5

Da http://api.jquery.com/selected-selector/: "* Poiché': selected' è un'estensione jQuery e non fa parte delle specifiche CSS, le query che utilizzano ': selected' non possono sfruttare l'incremento di prestazioni fornito dal metodo DOM 'querySelectorAll()' nativo Per ottenere le migliori prestazioni usando ': selected' per selezionare gli elementi, prima seleziona gli elementi usando un puro selettore CSS, quindi usa' .filter (": selected") '*" . Pertanto 'var selected = $ ('# sel option'). Filter (': selected');' è migliore. – Oriol

1

soluzione con lo stesso esempio

<!DOCTYPE html> 
<html> 
<script> 
function getValue() 
{ 
    var x=document.getElementById("sel"); 
    for (var i = 0; i < x.options.length; i++) { 
    if(x.options[i].selected ==true){ 
      alert(x.options[i].value); 
     } 
    } 
} 
</script> 
</head> 
<body> 
<select multiple="multiple" id="sel"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="button" value="Get Value" onclick="getValue()"/> 
</body> 
</html> 
0

uso selectedOptions

for (var i = 0; i < x.selectedOptions.length; i++) { 
    alert(x.selectedOptions[i].value); 
} 
Problemi correlati