Zum Inhalt springen

JavaScript-Formulareigenschaften und -methoden

Einführung in die JavaScript-Formularverarbeitung

Die Verarbeitung von Formularen in JavaScript ist entscheidend für die Erstellung interaktiver Websites. Dieser Leitfaden bietet ausführliche Beispiele, die effektive Möglichkeiten zum Zugriff auf Formulardaten, zu deren Manipulation und zur Validierung demonstrieren.

Formular-Elemente in JavaScript verstehen

Auf Formular-Elemente zugreifen

Um mit Formularen in JavaScript zu arbeiten, verwendet man in der Regel die Sammlung document.forms. Hier ist ein Beispiel, das zeigt, wie man in einer integrierten HTML- und JavaScript-Datei auf ein Formular und seine Eingabefelder zugreift:


html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>JavaScript Form Example</title>
</head>
<body>
    <form name="loginForm">
        <input type="text" name="username" placeholder="Username" />
        <input type="password" name="password" placeholder="Password" />
        <input type="submit" value="Login" />
    </form>
    <div style="margin-top:15px;" id="output"></div>

    <script>
        const form = document.forms['loginForm'];
        const username = form.elements['username'];
        const password = form.elements['password'];
        form.onsubmit = function(event) {
            const output = document.getElementById('output');
            output.textContent = 'Username: ' + username.value + ' Password: ' + password.value;
            event.preventDefault(); // Prevent form submission
        }
    </script>
</body>
</html>

Dieses Skript fängt das Absenden des Formulars ab, zeigt den Benutzernamen und das Passwort in einem Div auf der Seite an und verhindert, dass das Formular an einen Server gesendet wird.

Mit Eingabewerten arbeiten

Das Manipulieren von Eingabewerten ist in JavaScript unkompliziert. So können Sie Eingabewerte dynamisch setzen und auf Ihrer Webseite anzeigen:


html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Input Value Example</title>
</head>
<body>
    <form name="userForm">
        <input type="text" name="firstName" placeholder="First Name" />
        <input type="text" name="lastName" placeholder="Last Name" />
        <input type="submit" value="Submit" />
    </form>
    <div id="welcomeMessage"></div>

    <script>
        const form = document.forms['userForm'];
        const firstName = form.elements['firstName'];
        const lastName = form.elements['lastName'];
        firstName.value = 'John';
        lastName.value = 'Doe';

        form.onsubmit = function(event) {
            const welcomeMessage = document.getElementById('welcomeMessage');
            welcomeMessage.textContent = 'Hello, ' + firstName.value + ' ' + lastName.value + '!';
            event.preventDefault(); // Prevents the form from submitting to a server
        }
    </script>
</body>
</html>

In diesem Beispiel sind Vor- und Nachname auf „John“ bzw. „Doe“ voreingestellt. Wenn das Formular abgesendet wird, wird eine Begrüßung auf der Seite angezeigt, was sowohl das Setzen als auch das Auslesen von Eingabewerten demonstriert. Für komplexere Formulare sollten Sie die FormData-API in Betracht ziehen, um Formulardaten einfach in Schlüssel-Wert-Paare zu serialisieren, ohne jedes Element manuell anzusprechen.

Erweiterte Formulartechniken

Formularvalidierung

Die Echtzeit-Validierung von Formularen ist entscheidend für die Benutzererfahrung. Hier ist ein Beispiel dafür, wie Sie eine E-Mail-Adresse vor dem Absenden des Formulars validieren können. Beachten Sie, dass die HTML5-E-Mail-Validierung grundlegend ist und in der Praxis oft durch benutzerdefinierte Regex oder Bibliotheken ergänzt wird, da sie unvollständige Adressen wie 'w3docs@gmail' möglicherweise fälschlicherweise akzeptiert (Wenn Sie wissen möchten, wie man das behebt, können Sie JavaScript Validation API lesen):


html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Form Validation Example</title>
</head>
<body>
    <form name="registrationForm">
        <input type="email" name="email" placeholder="Enter your email" required />
        <input type="submit" value="Register" />
    </form>
    <div id="message"></div>

    <script>
        const form = document.forms['registrationForm'];
        const email = form.elements['email'];

        form.onsubmit = function(event) {
            // Note: HTML5 email validation is basic and often supplemented by custom regex or libraries for production.
            // It may incorrectly accept incomplete addresses like 'w3docs@gmail'.
            if (!email.checkValidity()) {
                document.getElementById('message').textContent = "Please enter a valid email address.";
                event.preventDefault();
                return;
            }
            document.getElementById('message').textContent = "Registration successful!";
            event.preventDefault(); // Prevents actual form submission
        }
    </script>
</body>
</html>

In diesem Skript validiert das Formular die E-Mail-Eingabe beim Absenden. Es zeigt eine Meldung an, die angibt, ob die Registrierung erfolgreich war oder ob ein Fehler vorliegt, und das alles, ohne Daten an einen Server zu senden. Dieses Beispiel hebt außerdem eine Einschränkung der HTML5-E-Mail-Validierung hervor, die das korrekte Domain-Format nicht vollständig sicherstellt.

Mit Formularereignissen arbeiten

So können Sie Formularereignisse dynamisch behandeln:


html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Form Events Example</title>
  </head>
  <body>
    <div style="display: flex; justify-content: center; align-items: center">
      <form
        style="display: flex; flex-direction: column; gap: 5px"
        name="contactForm"
      >
        <input type="text" name="fullName" placeholder="Full Name" required />
        <textarea name="message" placeholder="Your Message"></textarea>
        <input type="submit" value="Send" />
      </form>
    </div>
    <div
      style="display: flex; justify-content: center; align-items: center"
      id="confirmation"
    ></div>

    <script>
      const form = document.forms["contactForm"];

      form.onsubmit = function (event) {
        const name = form.elements["fullName"].value;
        const message = form.elements["message"].value;
        document.getElementById("confirmation").textContent =
          "Thank you, " + name + ", we received your message!";
        event.preventDefault(); // Prevents form from submitting to a server
      };
    </script>
  </body>
</html>

Dieses Beispiel gibt dem Benutzer sofortiges Feedback, indem es beim Absenden des Formulars eine Bestätigungsnachricht anzeigt. Es zeigt effektiv, wie JavaScript Formularereignisse verwalten kann, um die Interaktion ohne Serverkommunikation zu verbessern.

Fazit

Die Beherrschung der Formular-Eigenschaften und -Methoden von JavaScript verbessert die Funktionalität und die Benutzerinteraktion von Webanwendungen. Wenn Entwickler verstehen, wie man Formulardaten effektiv abruft, manipuliert und validiert, können sie ansprechendere und intuitivere Benutzererlebnisse schaffen. Setzen Sie diese Techniken in Ihrem nächsten Projekt ein, um deutliche Verbesserungen bei der Reaktionsfähigkeit Ihrer Anwendung und der Nutzerbindung zu sehen.

Practice

Welche der folgenden Aussagen sind in Bezug auf JavaScript-Formulare und ihre Methoden wahr?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.