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

Das ist mein Code. Wie erhalte ich alle ausgewählten Werte mit Javascript aus der Listbox? Der obige Code zeigt show true für alle ausgewählten Werte.

17
R J. 8 Okt. 2012 im 09:42

4 Antworten

Beste Antwort

Ersetzen

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

Mit

  if(x.options[i].selected){
      alert(x.options[i].value);
  }
18
Community 29 Juli 2015 im 13:04

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

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

Wenn Sie jQuery nicht verwenden möchten, ignorieren Sie diese Antwort und verweisen Sie auf die anderen.

6
Konstantin Dinev 8 Okt. 2012 im 05:51

Lösung mit demselben 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>
1
Pankaj Chauhan 14 Apr. 2016 im 10:47

Verwenden Sie selectedOptions

for (var i = 0; i < x.selectedOptions.length; i++) {
    alert(x.selectedOptions[i].value);
}
2
Rm558 15 Feb. 2017 im 16:59