Formulare und Eingaben
Formulare sind die wichtigste Methode, um Informationen von Benutzern auf Webseiten zu sammeln. Mit JavaScript können wir diese Eingaben prüfen und verarbeiten.
Zugriff auf Formularelemente
Abschnitt betitelt „Zugriff auf Formularelemente“// Über die DOM-Selektionconst formular = document.querySelector("#meinFormular");const emailInput = document.querySelector("#email");
// Zugriff auf die Formularelementeconst nameInput = formular.elements["name"];Formular-Events
Abschnitt betitelt „Formular-Events“Das submit-Event
Abschnitt betitelt „Das submit-Event“document.querySelector("#meinFormular").addEventListener("submit", function(event) { // Verhindert das Neuladen der Seite event.preventDefault();
// Daten aus dem Formular auslesen const name = this.elements["name"].value; const email = this.elements["email"].value;
console.log("Name:", name); console.log("E-Mail:", email);});Input- und Change-Events
Abschnitt betitelt „Input- und Change-Events“// Reagiert sofort bei jeder Änderungdocument.querySelector("#suchfeld").addEventListener("input", function() { console.log("Aktuelle Eingabe:", this.value);});
// Reagiert erst, wenn das Element den Fokus verliertdocument.querySelector("#alterInput").addEventListener("change", function() { console.log("Neuer Wert:", this.value);});Arten von Formularelementen
Abschnitt betitelt „Arten von Formularelementen“Textfelder
Abschnitt betitelt „Textfelder“<input type="text" id="name" name="name"><input type="email" id="email" name="email"><textarea id="kommentar" name="kommentar"></textarea>// Wert auslesenconst nameWert = document.querySelector("#name").value;
// Wert setzendocument.querySelector("#email").value = "beispiel@mail.com";Checkboxen
Abschnitt betitelt „Checkboxen“<input type="checkbox" id="newsletter" name="newsletter">const checkbox = document.querySelector("#newsletter");
// Überprüfen, ob angekreuztif (checkbox.checked) { console.log("Newsletter abonniert!");}
// Ankreuzencheckbox.checked = true;Radiobuttons
Abschnitt betitelt „Radiobuttons“<input type="radio" id="option1" name="option" value="erste"><input type="radio" id="option2" name="option" value="zweite">// Alle Radiobuttons mit dem Namen "option"const radioButtons = document.querySelectorAll('input[name="option"]');
// Herausfinden, welche Option ausgewählt istlet ausgewählterWert;for (const radioButton of radioButtons) { if (radioButton.checked) { ausgewählterWert = radioButton.value; break; }}Auswahlfelder (Select)
Abschnitt betitelt „Auswahlfelder (Select)“<select id="land" name="land"> <option value="de">Deutschland</option> <option value="at">Österreich</option> <option value="ch">Schweiz</option></select>const selectElement = document.querySelector("#land");
// Ausgewählten Wert auslesenconst ausgewähltesLand = selectElement.value;
// Eine Option auswählenselectElement.value = "at";Formularvalidierung
Abschnitt betitelt „Formularvalidierung“Einfache Validierung
Abschnitt betitelt „Einfache Validierung“document.querySelector("#meinFormular").addEventListener("submit", function(event) { const nameInput = this.elements["name"]; const emailInput = this.elements["email"];
// Name überprüfen if (nameInput.value.trim() === "") { alert("Bitte geben Sie Ihren Namen ein."); event.preventDefault(); return; }
// E-Mail überprüfen if (!emailInput.value.includes("@")) { alert("Bitte geben Sie eine gültige E-Mail-Adresse ein."); event.preventDefault(); return; }});HTML5-Validierung nutzen
Abschnitt betitelt „HTML5-Validierung nutzen“HTML5 bietet eingebaute Validierungsattribute:
<input type="email" id="email" name="email" required><input type="number" id="alter" name="alter" min="18" max="100">Formulardaten verarbeiten
Abschnitt betitelt „Formulardaten verarbeiten“Mit dem FormData-Objekt können wir einfach alle Formulardaten auslesen:
document.querySelector("#meinFormular").addEventListener("submit", function(event) { event.preventDefault();
// FormData-Objekt erstellen const formData = new FormData(this);
// Einzelne Werte auslesen console.log("Name:", formData.get("name")); console.log("E-Mail:", formData.get("email"));
// Über alle Werte iterieren for (const [name, wert] of formData.entries()) { console.log(`${name}: ${wert}`); }});Übung: Kontaktformular mit Validierung
Abschnitt betitelt „Übung: Kontaktformular mit Validierung“Zusammenfassung
Abschnitt betitelt „Zusammenfassung“- Mit Formularen sammeln wir Benutzereingaben auf Webseiten
- Wichtige Events für Formulare sind
submit,inputundchange - Die verschiedenen Formularelemente (Textfelder, Checkboxen, Radiobuttons, Select) haben unterschiedliche Eigenschaften
- Mit
event.preventDefault()verhindern wir das Neuladen der Seite beim Absenden - Die Formularvalidierung hilft, korrekte Eingaben sicherzustellen
- Das
FormData-Objekt macht es einfach, alle Formulardaten auf einmal auszulesen
Im nächsten Kapitel lernen wir, wie wir HTML-Elemente dynamisch erstellen und entfernen können.
Danke für Ihr Feedback!