In Express rendere ich eine Lenkervorlage, die ein Formular mit Werten füllt.

Um meine Auswahloptionen zu füllen, setze ich die Eigenschaft "value" meines Auswahlknotens wie folgt:

<select class="inputField" name="gender" value="female">
    <option value="male">Männlich</option>
    <option value="female">Weiblich</option>
</select>

Optisch ist jedoch die männliche Option ausgewählt. Kann jemand erklären, warum dies geschieht?

EDIT 1:

Ich bin mir der ausgewählten Eigenschaft bewusst, aber sie macht das Erstellen von Vorlagen komplizierter. Daher möchte ich den ausgewählten Wert lieber weitergeben.

Genauer gesagt zu meiner ursprünglichen Frage:

Warum funktioniert das dann:

var genderEl = document.getElementById('genderSelect');
    genderEl.value = "female";
1
Max Bumaye 21 Aug. 2015 im 02:06

5 Antworten

Beste Antwort

So funktioniert select nicht. Sie müssen das Attribut selected für ein option wie folgt verwenden:

<select class="inputField" name="gender">
    <option value="male">Männlich</option>
    <option value="female" selected="1">Weiblich</option>
</select>
1
elixenide 20 Aug. 2015 im 23:10

Um eine Option auszuwählen, verwenden Sie:

<option value="female" selected="selected">Weiblich</option>

sehen

0
Community 23 Mai 2017 im 12:14

Warum funktioniert das dann: var genderEl = document.getElementById('genderSelect'); genderEl.value = "female";

Einfach weil DOM unterschiedliche Eigenschaften verwendet ;-)

So beantworten Sie Ihre ursprüngliche Frage: Es gibt kein value -Attribut Für Auswahlen in HTML, aber gibt es eine in DOM. Sie müssen sich also an das Attribut selected halten, wenn Sie eine reine HTML-Lösung wünschen.

1
Sebastian S 20 Aug. 2015 im 23:26

Die richtige Methode zum Vorauswählen einer Option in einem Auswahleingang ist:

<select class="inputField" name="gender">
    <option value="male">Männlich</option>
    <option value="female" selected>Weiblich</option>
</select>

Wenn Sie xhtml oder html4 verwenden, sollten Sie ausgewählt für ausgewählt = "ausgewählt" ändern

2
Erwin 20 Aug. 2015 im 23:12

Ich denke, dass Sie so etwas suchen:

<select class="inputField" name="gender">
    <option value="male">Männlich</option>
    <option value="female" selected>Weiblich</option>
</select>
1
Carlos Galan 20 Aug. 2015 im 23:14