2012-10-08 6 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> 

Dies ist mein Code. Wie bekomme ich alle ausgewählten Werte aus Listbox mit Javascript. Der obige Code zeigt für alle ausgewählten Wert wahr. Ersetzenwie man mehrere ausgewählte Werte und Artikel aus der Listbox mit Javascript

Antwort

17

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

mit

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

Sein Arbeits danke :) –

+0

Es ist nutzlos 'if (x.options [i] .selected verwenden = = true) 'anstelle von 'if (x.options [i] .selected)', aber es könnte Sinn ergeben' if (x.options [i] .selected === true) 'oder' if (!! x. Optionen [i] .selected) ' – Oriol

6

Ich schlage vor, dass Sie es mit jQuery wie folgt tun:

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

Wenn Sie nicht lieber jQuery dann verwenden Sie diese Antwort ignorieren und beziehen Sie sich auf die anderen.

+6

Frage fragt nach einer JavaScript-Lösung und ist nicht getaggt * jQuery * – Phil

+1

@Phil Nur einen Vorschlag machen, kann der Benutzer es ignorieren, wenn er jQuery nicht verwendet, aber es kann ihm auch leichten DOM-Zugang vorstellen, den er in Betracht ziehen könnte. –

+5

Von http://api.jquery.com/selected-selector/: "* Da': selected' eine jQuery-Erweiterung ist und nicht Teil der CSS-Spezifikation ist, können Abfragen, die ': selected' verwenden, nicht von der bereitgestellten Leistungssteigerung profitieren mit der nativen Methode 'querySelectorAll()' 'DOM' querySelectorAll. Um die beste Leistung zu erzielen, wenn Sie ': selected' zum Auswählen von Elementen verwenden, wählen Sie zuerst die Elemente mit einem reinen CSS-Selektor aus und verwenden dann' .filter (': selectedAlle) '*" . Daher 'var selected = $ ('# sel option') filter (': selected');' ist besser. – Oriol

1

Lösung mit dem gleichen Beispiel

<!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

Verwendung selectedOptions

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