Signatur
Beschreibung
Die Eigenschaft value eines HTMLSelectElement liefert den Wert der ersten ausgewählten Option als String. Hat die Option ein value-Attribut, wird dessen Inhalt zurückgegeben, sonst ihr Textinhalt (mit bereinigten Leerzeichen). Ist keine Option ausgewählt, ist der Wert ein leerer String "".
Weist man value einen String zu, wählt der Browser die erste Option aus, deren Wert exakt übereinstimmt, und hebt alle anderen Auswahlen auf. Gibt es keine passende Option, wird gar keine Option ausgewählt (selectedIndex wird -1). So lassen sich Auswahllisten bequem aus gespeicherten Daten, URL-Parametern oder Formularzuständen vorbelegen.
Bei Mehrfachauswahl (<select multiple>) liefert value nur den Wert der ersten ausgewählten Option. Für alle Werte muss man über selectedOptions iterieren.
Rückgabewert
"", wenn keine Option ausgewählt ist. Beim Setzen wird ein beliebiger Wert in einen String umgewandelt.Beispiele
Aktuellen Wert beim Ändern auslesen
// HTML: <select id="land"><option value="de">Deutschland</option><option value="at">Österreich</option><option value="ch">Schweiz</option></select>
const land = document.querySelector('#land');
land.addEventListener('change', () => {
console.log(`Gewählt: ${land.value}`);
});
Auswahl aus gespeichertem Wert vorbelegen
const sprache = document.querySelector('#sprache');
const gespeichert = localStorage.getItem('sprache') ?? 'de';
sprache.value = gespeichert;
// Prüfen, ob der Wert überhaupt existiert
if (sprache.selectedIndex === -1) {
sprache.value = 'de'; // Rückfall auf Standard
}
console.log(sprache.value);
Mehrfachauswahl: value liefert nur den ersten Wert
// HTML: <select id="tags" multiple> ... </select>
const tags = document.querySelector('#tags');
console.log(tags.value); // nur die erste Auswahl
const alle = Array.from(tags.selectedOptions, (opt) => opt.value);
console.log(alle);
Option ohne value-Attribut
const select = document.createElement('select');
select.innerHTML = '<option> Rot </option><option value="g">Grün</option>';
console.log(JSON.stringify(select.value)); // Textinhalt, Leerzeichen bereinigt
select.value = 'g';
console.log(select.selectedIndex);
// Wichtig · Fallstricke
- Kein passender Wert: Wird ein nicht vorhandener Wert zugewiesen, ist danach keine Option ausgewählt (
selectedIndex === -1,value === "") – es wird kein Fehler geworfen. - Kein Event: Das programmatische Setzen von
valuelöst wederchangenochinputaus. Bei Bedarf manuellselect.dispatchEvent(new Event('change', { bubbles: true }))aufrufen. - Immer String: Auch numerische Werte kommen als String zurück – vor Vergleichen oder Rechnungen mit
Number()umwandeln. - Mehrfachauswahl: Bei
multiplenur der erste Wert; alle Werte überselectedOptionsermitteln. - Deaktivierte Optionen (
disabled) können pervaluetrotzdem ausgewählt werden, werden aber bei deaktiviertem<select>nicht mit dem Formular übermittelt. - In allen modernen Browsern einheitlich unterstützt.