Dynamic Form Validation JavaScript, HTML

👤 Sharing: AI
```html
<!DOCTYPE html>
<html>
<head>
<title>Dynamic Form Validation</title>
<style>
  .error {
    color: red;
    font-size: 0.8em;
  }
</style>
</head>
<body>

<h1>Dynamic Form Validation</h1>

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

  <label for="email">Email:</label>
  <input type="email" id="email" name="email">
  <span id="emailError" class="error"></span>
  <br><br>

  <label for="password">Password:</label>
  <input type="password" id="password" name="password">
  <span id="passwordError" class="error"></span>
  <br><br>

  <label for="confirmPassword">Confirm Password:</label>
  <input type="password" id="confirmPassword" name="confirmPassword">
  <span id="confirmPasswordError" class="error"></span>
  <br><br>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
  const form = document.getElementById('myForm');
  const nameInput = document.getElementById('name');
  const emailInput = document.getElementById('email');
  const passwordInput = document.getElementById('password');
  const confirmPasswordInput = document.getElementById('confirmPassword');

  const nameError = document.getElementById('nameError');
  const emailError = document.getElementById('emailError');
  const passwordError = document.getElementById('passwordError');
  const confirmPasswordError = document.getElementById('confirmPasswordError');


  function validateName() {
    if (!nameInput.value) {
      nameError.textContent = 'Name is required.';
      return false;
    } else {
      nameError.textContent = '';
      return true;
    }
  }

  function validateEmail() {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (!emailInput.value) {
      emailError.textContent = 'Email is required.';
      return false;
    } else if (!emailRegex.test(emailInput.value)) {
      emailError.textContent = 'Invalid email format.';
      return false;
    } else {
      emailError.textContent = '';
      return true;
    }
  }

  function validatePassword() {
    if (!passwordInput.value) {
      passwordError.textContent = 'Password is required.';
      return false;
    } else if (passwordInput.value.length < 8) {
      passwordError.textContent = 'Password must be at least 8 characters long.';
      return false;
    } else {
      passwordError.textContent = '';
      return true;
    }
  }

  function validateConfirmPassword() {
    if (!confirmPasswordInput.value) {
      confirmPasswordError.textContent = 'Confirm Password is required.';
      return false;
    } else if (confirmPasswordInput.value !== passwordInput.value) {
      confirmPasswordError.textContent = 'Passwords do not match.';
      return false;
    } else {
      confirmPasswordError.textContent = '';
      return true;
    }
  }


  nameInput.addEventListener('input', validateName);
  emailInput.addEventListener('input', validateEmail);
  passwordInput.addEventListener('input', validatePassword);
  confirmPasswordInput.addEventListener('input', validateConfirmPassword);


  form.addEventListener('submit', function(event) {
    event.preventDefault(); // Prevent default form submission

    const isNameValid = validateName();
    const isEmailValid = validateEmail();
    const isPasswordValid = validatePassword();
    const isConfirmPasswordValid = validateConfirmPassword();


    if (isNameValid && isEmailValid && isPasswordValid && isConfirmPasswordValid) {
      alert('Form submitted successfully!');
      // In a real application, you would submit the form data to the server here.
      form.reset(); // Clear the form after successful submission
    } else {
      alert('Please correct the errors in the form.');
    }
  });
});
</script>

</body>
</html>
```
👁️ Viewed: 8

Comments