4.3.6 Auswahllisten erstellen
Neben Eingabefeldern sind Auswahllisten in Formularen ebenfalls von Bedeutung. So wird z. B. das Land oft über solche Auswahllisten gewählt, sodass sich kein Tippfehler einschleichen kann. Dem Benutzer wird eine Liste mit festgelegten Begriffen dargestellt, aus denen er auswählen kann. Der Text des ausgewählten Begriffes wird dann übertragen.
Eine Auswahlliste wird eingeleitet durch das Element <select>
. Ein unverzichtbares Attribut ist name
, das Sie unbedingt angeben müssen. Wenn nun "Deutschland" ausgewählt wird, dann wird der Wert aus dem Attribut name
zur HTTP-Variable und der Wert des Attributs value
zum HTTP-Wert. Im obigen Beispiel wird damit per HTTP an den Webserver übertragen landauswahl=de
. Mehr hierzu später im Kapitel über HTTP.
Attribute und Elemente für Auswahllisten (<select>
und <option>
)
Attribut/Element | Beschreibung |
---|---|
size |
Gibt die Anzahl der sichtbaren Reihen in der Auswahlliste an. size="1" ist der Standardwert und damit erstellen Sie eine sogenannte Drop-Down-Liste. Wird ein höherer Wert angegeben, wird die Liste entsprechend größer dargestellt. |
multiple |
Ermöglicht dem Benutzer die Auswahl mehrerer Optionen. Wird dem <select> -Element hinzugefügt. Ohne dieses Attribut kann der Benutzer nur eine Option auswählen. Wenn Sie eine Mehrfachauswahl zulassen oder sogar wünschen, sollten Sie dies dem Benutzer deutlich machen. |
selected |
Legt fest, welche Option standardmäßig ausgewählt ist. Wird dem <option> -Element hinzugefügt. Bei Mehrfachauswahl können mehrere Optionen mit selected vorausgewählt werden. |
required |
Gibt an, dass der Benutzer eine Auswahl treffen muss (Pflichtfeld). Wird dem <select> -Element hinzugefügt. |
name |
Unverzichtbares Attribut des <select> -Elements, das beim Absenden des Formulars als Parametername dient. Bei Mehrfachauswahl sollte name als Array angegeben werden, z. B. name="landauswahl[]" , um die Verarbeitung mehrerer Werte zu ermöglichen. |
id |
Identifiziert das <select> -Element eindeutig im Dokument. Wichtig für die Zuordnung von <label> -Elementen und für JavaScript-Interaktionen. |
disabled |
Deaktiviert eine Option oder das gesamte <select> -Element, sodass es nicht ausgewählt oder genutzt werden kann. Wird häufig verwendet, um nicht verfügbare Optionen anzuzeigen. |
<optgroup> |
Gruppiert verwandte Optionen innerhalb eines <select> -Elements. Das label -Attribut des <optgroup> -Elements gibt den Namen der Gruppe an. Ermöglicht eine bessere Strukturierung langer Auswahllisten. |
Zwei Beispiele mit Erläuterung
Beispiel 1: Einfache Auswahlliste mit Platzhalter und Pflichtfeld
<form action="datenverarbeitung.php" method="get">
<p><label for="land">Wählen Sie Ihr Land:</label><br>
<select name="landauswahl" id="land" required>
<option value="" disabled selected>-- Bitte wählen --</option>
<option value="dk">Dänemark</option>
<option value="de">Deutschland</option>
<option value="nl">Niederlande</option>
<option value="fr">Frankreich</option>
<option value="es">Spanien</option>
</select>
</p>
</form>
Erläuterung:
required
-Attribut: Das<select>
-Element enthält dasrequired
-Attribut, wodurch der Benutzer verpflichtet ist, eine Auswahl zu treffen, bevor das Formular abgesendet werden kann.- Platzhalteroption: Die erste
<option>
hatvalue=""
,disabled
undselected
gesetzt. Dies dient als Platzhalter mit dem Text "-- Bitte wählen --", der nicht ausgewählt werden kann. - Barrierefreiheit: Das
<label>
-Element ist korrekt mit demfor
-Attribut und derid
des<select>
-Elements verknüpft, was die Bedienbarkeit für Screenreader und Tastaturnavigation verbessert.
Beispiel 2: Mehrfachauswahl mit Gruppierung und vorausgewählten Optionen
<form action="datenverarbeitung.php" method="get">
<p><label for="sprachen">Wählen Sie Ihre bevorzugten Programmiersprachen:</label><br>
<select name="sprachen[]" id="sprachen" multiple size="5">
<optgroup label="Webentwicklung">
<option value="html" selected>HTML</option>
<option value="css">CSS</option>
<option value="js">JavaScript</option>
</optgroup>
<optgroup label="Backend">
<option value="php">PHP</option>
<option value="python" selected>Python</option>
<option value="ruby">Ruby</option>
</optgroup>
</select>
</p>
</form>
Erläuterung:
multiple
-Attribut: Ermöglicht dem Benutzer, mehrere Optionen auszuwählen.name="sprachen[]"
: Durch die eckigen Klammern[]
werden die ausgewählten Werte als Array übertragen, was die Verarbeitung auf Serverseite erleichtert.size="5"
: Zeigt fünf Zeilen der Auswahlliste an, sodass mehrere Optionen gleichzeitig sichtbar sind.<optgroup>
-Elemente: Die Optionen sind in Gruppen wie "Webentwicklung" und "Backend" unterteilt, was die Übersichtlichkeit erhöht.- Vorausgewählte Optionen: Die Optionen "HTML" und "Python" sind mit dem
selected
-Attribut vorausgewählt. - Barrierefreiheit: Das
<label>
ist korrekt mit demselect
-Element verknüpft, was die Zugänglichkeit verbessert.