HTML-Tag fieldset – Formularfelder zusammenfassen

HTML fieldset – Felder gruppieren

fieldset gruppiert zusammengehörige Felder eines Formulars mit einem Rahmen und einer Überschrift – der »Legende« oder Kurzbeschreibung. legend – die Überschrift – kann für jedes fieldset erzeugt werden.

Sowohl fieldset als auch legend sieht man das hohe Alter an, aber für die Darstellung ist CSS zuständig.

18-12-15 SITEMAP CSS HTML JS Basis JS Web Tutorial SVG

Gruppieren und zusammenhalten

fieldset und legend lockern lange Formulare auf und halten Gruppen von Formularfeldern optisch zusammen.

legend setzt eine Legende zu einem Formularelement innerhalb einer fieldset-Gruppe. Das legend-Element kann nur innerhalb von fieldset stehen.

Anmeldung
<fieldset style="text-align:center">
    <legend style="padding:20px;text-align:center">Anmeldung</legend>
    <label>
        <input type="text" placeholder="Vorname">
    </label>
    <label>
        <input type="text" placeholder="Name">
     </label>
</fieldset>

fieldset – disabled

In älteren Versionen des HTML-Standards transportierte fieldset keine Informationen, sondern diente nur als optische Hilfestellung.

Farbe

HTML fieldset kommt heute mehr Bedeutung zu als die optische Gruppierung von Feldern: fieldset disabled setzt Eingabefelder außer Kraft. Natürlich gilt: trotzdem prüfen, denn disabled funktioniert nicht in jedem Browser (in IE11 sind die Eingabefelder trotz disabled aktiv – Hoffnungslos).

Anmeldung

Checkbox aktivieren, um Eingabefelder freizugeben:

<fieldset disabled id="anmeldung" >
	<legend>
		<label>
			<input type="checkbox" onchange="document.querySelector('#anmeldung').disabled=false">
		</label> 
		Anmeldung
	</legend>
	<label><input type="text" id="username" placeholder="User-Name" style="width:90%"></label>
	<label><input type="password" id="userpasswd" placeholder="Passwort" style="width:90%"></label>
</fieldset>

onchange ist ein valides HTML-Attribut, das ein Javascript bei einer Änderung auslöst. Eigentlich sind Attribute wie onclick, onchange, onmouseover im HTML-Markup heute überholt. Mal 'ne Ausnahme …

fieldset verschachteln

Die Eingabefelder der inneren fieldset-Elemente in diesem Beispiel sind inaktiv, da das umgebende fieldset-Element disabled setzt. Erst wenn die Checkbox Klubkarte aktiviert ist, wird das Feld "Name der Karte" für die Eingabe freigegeben.

<form>
	<fieldset name="clubfields" disabled>
		<legend>
			<label><input type="checkbox" name="club" onchange="form.clubfields.disabled = !checked"> Klubkarte </label>
		</legend> 
		<p><label>Name auf der Karte:  <input name="clubname" required></label></p>
		<fieldset name="numfields" disabled>
			<legend> 
				<label> 
					<input type="radio" name="clubtype" onchange="form.numfields.disabled = !checked">
					Karte zeigt Ziffern </label>
			</legend> 
			<p><label>Kartennummer: <input name="clubnum" required pattern="[-0-9]+"></label></p>
		</fieldset>
		<fieldset name="letfields" disabled>
			<legend> 
				<label> 
					<input type="radio" name="clubtype" onchange="form.letfields.disabled = !checked">
					Karte zeigt Buchstaben </label>
			</legend> 
			<p><label>Code der Karte: <input name="clublet" required pattern="[A-Za-z]+"></label></p>
		</fieldset>
	</fieldset>
</form>

Quelle: HTML Living Standard

CSS für fieldset und legend

CSS border ändert den Rahmen, den fieldset automatisch zeigt; CSS background-color ändert die Hintergrundfarbe der Box.

fieldset { 
	border: 2px solid #C5D8E1; 
	border-radius: 6px; 
	background: white; 
} 

fieldset Attribute

disabled
eine Gruppe von Formularelementen innerhalb von fieldset ist inaktiv
form
formid, Formulare, zu denen das fieldset gehört. Mit einem form-Attribut kann ein fieldset, das nicht innerhalb eines form-Elements liegt, einem oder mehreren Formularen zugeordnet werden.
name
Text, Name des fieldsets, kann als Referenz der Formulardaten in Javascript oder nach dem Absenden in der Anwendung genutzt werden.