Skip to content

Kapitel 10: HTML-Formular-Tags

📝 Lernziel: Formulare erstellen - die Schnittstelle für Benutzerinteraktion!

10.1 Formular-Grundstruktur: form-Tag

Das <form>-Tag ist der Container für alle Formularelemente.

Grundlegende Syntax:

html
<form action="verarbeitung.php" method="POST">
  <!-- Formularelemente hier -->
</form>

Wichtige Attribute:

AttributBedeutungBeispiel
actionZiel-URL für Datenübermittlungaction="login.php"
methodHTTP-Methodemethod="GET" oder method="POST"
enctypeCodierung (für Datei-Upload)enctype="multipart/form-data"

Unterschied zwischen GET und POST:

MethodeVerwendungSichtbarkeit
GETDatenabfrageDaten in URL sichtbar
POSTDatenübermittlungDaten im Hintergrund

Beispiel:

html
<!-- Login-Formular -->
<form action="login.php" method="POST">
  <label for="benutzer">Benutzername:</label>
  <input type="text" id="benutzer" name="benutzer">
  
  <label for="passwort">Passwort:</label>
  <input type="password" id="passwort" name="passwort">
  
  <button type="submit">Einloggen</button>
</form>

10.2 Input-Tag: Häufige Typen

Das <input>-Tag ist das vielseitigste Formularelement.

Grundlegende Syntax:

html
<input type="typ">

Wichtige input-Typen:

TypFunktionBeispiel
textEinzeiliges Textfeld<input type="text">
passwordPasswortfeld (verdeckt)<input type="password">
radioRadio-Button (Auswahl eine)<input type="radio">
checkboxCheckbox (mehrfache Auswahl)<input type="checkbox">
submitAbsenden-Button<input type="submit">
resetZurücksetzen-Button<input type="reset">
fileDatei-Upload<input type="file">
hiddenVerstecktes Feld<input type="hidden">

Beispiele:

html
<!-- Textfeld -->
<input type="text" placeholder="Benutzername">

<!-- Passwortfeld -->
<input type="password" placeholder="Passwort">

<!-- Radio-Buttons -->
<input type="radio" name="geschlecht" id="m" value="m">
<label for="m">Männlich</label>
<input type="radio" name="geschlecht" id="w" value="w">
<label for="w">Weiblich</label>

<!-- Checkboxen -->
<input type="checkbox" id="agb" name="agb">
<label for="agb">AGB akzeptieren</label>

10.3 Weitere Formularelemente

textarea (Textbereich)

html
<textarea rows="5" cols="30" placeholder="Deine Nachricht..."></textarea>

select + option (Dropdown)

html
<select name="stadt">
  <option value="berlin">Berlin</option>
  <option value="muenchen">München</option>
  <option value="hamburg">Hamburg</option>
</select>

button (Schaltfläche)

html
<button type="submit">Absenden</button>
<button type="reset">Zurücksetzen</button>
<button type="button">Klick mich</button>

Vollständiges Beispiel:

html
<form>
  <textarea placeholder="Deine Nachricht..." rows="4" cols="50"></textarea>
  
  <select name="land">
    <option value="">Bitte wählen...</option>
    <option value="de">Deutschland</option>
    <option value="at">Österreich</option>
    <option value="ch">Schweiz</option>
  </select>
  
  <button type="submit">Absenden</button>
</form>

10.4 Formular-Attribute

Wichtige Attribute für Formularelemente:

AttributFunktionBeispiel
placeholderPlatzhaltertextplaceholder="E-Mail eingeben"
requiredPflichtfeld<input required>
disabledDeaktiviert<input disabled>
readonlyNur lesbar<input readonly>
valueVordefinierter Wertvalue="Vorname"
nameName für Datenübermittlungname="email"
idEindeutige ID (für label)id="email"

Beispiele:

html
<!-- Pflichtfeld -->
<input type="email" required placeholder="E-Mail (Pflichtfeld)">

<!-- Deaktiviert -->
<input type="text" value="Nicht änderbar" disabled>

<!-- Vordefinierter Wert -->
<input type="text" name="vorname" value="Max">

10.5 Formular-Optimierung: label-Tag

Das <label>-Tag verbessert Benutzererfahrung und SEO!

Warum label wichtig ist:

  1. Klick auf das Label fokussiert das Eingabefeld
  2. Bessere Barrierefreiheit (Screenreader)
  3. Größere Klickfläche für Mobile

Syntax (zwei Methoden):

Methode 1: for + id (empfohlen)

html
<label for="email">E-Mail:</label>
<input type="email" id="email" name="email">

Methode 2: Verschachtelung

html
<label>
  E-Mail:
  <input type="email" name="email">
</label>

⚠️ Wichtig: Jedes Eingabefeld sollte ein <label> haben!

Beispiel - Korrektes Formular:

html
<form>
  <div>
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>
  </div>
  
  <div>
    <label for="email">E-Mail:</label>
    <input type="email" id="email" name="email" required>
  </div>
  
  <button type="submit">Absenden</button>
</form>

10.6 Praxis: Login- und Registrierungsformular

Login-Formular

html
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Login</title>
</head>
<body>
  <h2>Login</h2>
  <form action="login.php" method="POST">
    <div>
      <label for="benutzer">Benutzername oder E-Mail:</label>
      <input type="text" id="benutzer" name="benutzer" required>
    </div>
    
    <div>
      <label for="passwort">Passwort:</label>
      <input type="password" id="passwort" name="passwort" required>
    </div>
    
    <div>
      <input type="checkbox" id="merken" name="merken">
      <label for="merken">Angemeldet bleiben</label>
    </div>
    
    <button type="submit">Einloggen</button>
  </form>
</body>
</html>

Registrierungsformular

html
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>Registrierung</title>
</head>
<body>
  <h2>Registrierung</h2>
  <form action="register.php" method="POST">
    <div>
      <label for="name">Vollständiger Name:</label>
      <input type="text" id="name" name="name" required>
    </div>
    
    <div>
      <label for="email">E-Mail:</label>
      <input type="email" id="email" name="email" required>
    </div>
    
    <div>
      <label for="passwort">Passwort:</label>
      <input type="password" id="passwort" name="passwort" required>
    </div>
    
    <div>
      <label for="geburtstag">Geburtstag:</label>
      <input type="date" id="geburtstag" name="geburtstag">
    </div>
    
    <div>
      <input type="checkbox" id="agb" name="agb" required>
      <label for="agb">Ich akzeptiere die AGB</label>
    </div>
    
    <button type="submit">Registrieren</button>
  </form>
</body>
</html>

✅ Zusammenfassung

In diesem Kapitel hast du gelernt:

  • ✅ Formular-Grundstruktur (<form>, action, method)
  • ✅ Input-Typen (text, password, radio, checkbox)
  • ✅ Weitere Elemente (<textarea>, <select>, <button>)
  • ✅ Formular-Attribute (placeholder, required, disabled)
  • <label>-Tag für Barrierefreiheit und SEO
  • ✅ Login- und Registrierungsformulare zu erstellen

🎯 Nächster Schritt: In Kapitel 11 lernst du HTML5-Neuerungen!


← Zurück zu Kapitel 9: Bereichs-TagsWeiter zu Kapitel 11: HTML5-Neuerungen →

Frei für alle Anfänger