2281 Stimmen

Ausgewählten Wert in Dropdown-Liste mit JavaScript abrufen

Wie erhalte ich den ausgewählten Wert aus einer Dropdown-Liste mit JavaScript?

Ich habe die folgenden Methoden ausprobiert, aber sie geben alle den ausgewählten Index statt des Wertes zurück:

var e = document.getElementById("ddlViewBy");
function show(){
  var as = document.forms[0].ddlViewBy.value;
  var strUser = e.options[e.selectedIndex].value;
  console.log(as, strUser);
}
e.onchange=show;
show();

<form>
  <select id="ddlViewBy">
    <option value="1">test1</option>
    <option value="2" selected="selected">test2</option>
    <option value="3">test3</option>
  </select>
</form>

0 Stimmen

Wie kann ich den ausgewählten Wert erhalten, wenn ich das Attribut "ausgewählt" nicht verwende?

4voto

Heretic Monkey Punkte 11074

In moderneren Browsern, querySelector ermöglicht es uns, die ausgewählte Option in einer einzigen Anweisung abzurufen, indem wir die :checked Pseudoklasse . Aus der gewählten Option können wir alle benötigten Informationen entnehmen:

const opt = document.querySelector('#ddlViewBy option:checked');
// opt is now the selected option, so
console.log(opt.value, 'is the selected value');
console.log(opt.text, "is the selected option's text");

<select id="ddlViewBy">
  <option value="1">test1</option>
  <option value="2" selected="selected">test2</option>
  <option value="3">test3</option>
</select>

4voto

emptywalls Punkte 1187

event.target.value innerhalb des onChange-Callbacks hat den Trick für mich getan.

3voto

Belgacem Ksiksi Punkte 264

Hier ist eine JavaScript-Codezeile:

var x = document.form1.list.value;

Angenommen, das Dropdown-Menü namens Liste name="list" und in ein Formular mit dem Attribut name aufgenommen name="form1" .

0 Stimmen

OP sagte, dass das bei ihnen nicht funktioniert hat: "Ich habe die folgenden Methoden ausprobiert, aber sie geben alle den ausgewählten Index statt des Wertes zurück: var as = document.form1.ddlViewBy.value; ..."

3voto

Pal Singh Punkte 1941

Sie sollten Folgendes verwenden querySelector um dies zu erreichen. Dadurch wird auch die Art und Weise standardisiert, wie Werte von Formularelementen abgerufen werden.

var dropDownValue = document.querySelector('#ddlViewBy').value;

Fiedel: https://jsfiddle.net/3t80pubr/

3voto

Emmanuel Onah Punkte 391

Ich denke, Sie können einen Ereignis-Listener an das Select-Tag selbst anhängen, z. B:

<script>
  document.addEventListener("DOMContentLoaded", (_) => {
    document.querySelector("select").addEventListener("change", (e) => {
      console.log(e.target.value);
    });
  });
</script>

In diesem Szenario sollten Sie sicherstellen, dass Sie ein Wertattribut für alle Ihre Optionen haben, und dass diese nicht null sind.

0 Stimmen

Tolle Antwort, vielen Dank! In meinem Fall habe ich zwei Selektoren, aber ich konnte auf die Selektor-ID mit "e.srcElement.id" zugreifen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X