Course Content
Introduction to HTML (Structure of the Web)
0/1
Introduction to CSS (Styling the Web)
Getting Started with CSS
0/2
Introduction to JavaScript (Interactivity on the Web)
Project Presentation and Review
0/1
Protected: Web Development Bootcamp: Master HTML, CSS, and JavaScript in 3 Weeks
About Lesson

Working with Forms and Inputs in JavaScript

Forms are essential for collecting user input in web applications. With JavaScript, you can validate the input data to ensure it meets specific criteria before it is submitted. You can also handle form submission events and provide feedback to users if their input is incorrect.


1. Validating Forms Using JavaScript

Form validation is a critical part of web development, ensuring that the data submitted by the user is correct and in the expected format. JavaScript allows you to perform client-side validation before the data is sent to the server.

Basic Validation Example: Checking if Fields Are Empty

You can validate form fields by checking if they are empty or contain invalid data. For instance, let’s create a simple form where the user must enter a name and email.

<form id="myForm">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name"><br><br>

    <label for="email">Email:</label>
    <input type="email" id="email" name="email"><br><br>

    <button type="submit">Submit</button>
</form>

<script>
    document.getElementById("myForm").addEventListener("submit", function(event) {
        // Prevent the form from submitting
        event.preventDefault();

        // Get form values
        let name = document.getElementById("name").value;
        let email = document.getElementById("email").value;

        // Validation checks
        if (name === "" || email === "") {
            alert("All fields are required!");
        } else {
            alert("Form submitted successfully!");
        }
    });
</script>

In this example:

  • The form has two fields: Name and Email.
  • When the form is submitted, JavaScript listens for the submit event.
  • If any of the fields are empty, an alert will notify the user that all fields are required. Otherwise, it confirms successful submission.

Regular Expression Validation: Validating Email Format

For more advanced validation, such as checking whether an email address is valid, you can use regular expressions.

<form id="emailForm">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email"><br><br>

    <button type="submit">Submit</button>
</form>

<script>
    document.getElementById("emailForm").addEventListener("submit", function(event) {
        event.preventDefault();
        let email = document.getElementById("email").value;

        // Regular expression for basic email validation
        let emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/;

        if (!emailPattern.test(email)) {
            alert("Please enter a valid email address.");
        } else {
            alert("Email submitted successfully!");
        }
    });
</script>

In this example:

  • A regular expression (emailPattern) is used to check if the email address follows a common pattern (e.g., user@example.com).
  • If the email does not match the pattern, an alert is shown to inform the user.

2. Event Listeners and Form Submission

Using event listeners, we can intercept form submissions and perform validation or other actions before the form data is sent to the server.

Preventing Default Form Submission

By default, when a user submits a form, the browser will refresh the page and send the form data to the server. You can prevent this behavior with event.preventDefault() to stop the form from submitting until validation is complete.

Example of Event Listener for Form Submission

<form id="loginForm">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username"><br><br>

    <label for="password">Password:</label>
    <input type="password" id="password" name="password"><br><br>

    <button type="submit">Login</button>
</form>

<script>
    document.getElementById("loginForm").addEventListener("submit", function(event) {
        event.preventDefault();  // Prevents the form from submitting

        let username = document.getElementById("username").value;
        let password = document.getElementById("password").value;

        // Simple validation
        if (username === "" || password === "") {
            alert("Username and password cannot be empty.");
        } else {
            alert("Login successful!");
        }
    });
</script>

In this example:

  • When the user clicks the Login button, the form will not submit immediately.
  • JavaScript checks whether both the Username and Password fields are filled in.
  • If either field is empty, an alert prompts the user to fill in the fields; otherwise, a success message is displayed.

3. Handling Form Inputs Dynamically

You can also interact with form inputs dynamically, changing values based on user interaction or updating the UI based on form input.

Example: Updating UI Based on User Input

<form id="feedbackForm">
    <label for="feedback">Enter Feedback:</label><br>
    <textarea id="feedback" name="feedback" rows="4" cols="50"></textarea><br><br>

    <button type="submit">Submit Feedback</button>
</form>

<p id="message"></p>

<script>
    document.getElementById("feedbackForm").addEventListener("submit", function(event) {
        event.preventDefault();  // Prevent form submission

        let feedback = document.getElementById("feedback").value;

        if (feedback === "") {
            document.getElementById("message").textContent = "Please provide your feedback.";
        } else {
            document.getElementById("message").textContent = "Thank you for your feedback!";
        }
    });
</script>

In this example:

  • When the user submits the feedback form, JavaScript checks if the Feedback field is empty.
  • If the field is empty, it shows a message asking the user to provide feedback.
  • If the field is not empty, it shows a “Thank you” message.

Conclusion

In this section, you learned how to work with forms and inputs in JavaScript. You can validate form fields using simple checks or regular expressions to ensure the user provides the correct data. Additionally, you can use event listeners to intercept form submissions, perform validation, and prevent default actions (like page reloads). Mastering these techniques will help you create interactive, user-friendly forms and improve the user experience on your website.