jQuery Form Validation Example

This code checks a registration form before it is sent. It shows an error below each wrong field, and stops the submit when there is an error.

HTML

<form id="register" novalidate>
  <p><input type="text" name="name" placeholder="Name"> <span class="err"></span></p>
  <p><input type="text" name="email" placeholder="Email"> <span class="err"></span></p>
  <p><input type="password" name="password" placeholder="Password"> <span class="err"></span></p>
  <button type="submit">Register</button>
</form>

CSS

.err { color: #c00; font-size: 13px; }
input.invalid { border: 1px solid #c00; }

jQuery code

function validate(name, value) {
  value = value.trim();
  if (name === 'name' && value === '') return 'Name is required';
  if (name === 'email' && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) return 'Enter a valid email';
  if (name === 'password' && value.length < 6) return 'Password needs 6 or more characters';
  return '';
}

$('#register').on('submit', function (e) {
  var ok = true;

  $(this).find('input').each(function () {
    var message = validate(this.name, this.value);
    $(this).toggleClass('invalid', message !== '');
    $(this).next('.err').text(message);
    if (message) ok = false;
  });

  if (!ok) e.preventDefault();
  console.log('form valid: ' + ok);
});

// test 1: empty form
$('#register').trigger('submit');
console.log($('.err').map(function () { return $(this).text(); }).get());

// test 2: correct data
$('[name=name]').val('Anita');
$('[name=email]').val('anita@example.com');
$('[name=password]').val('secret123');
$('#register').trigger('submit');
Console output

form valid: false
[ 'Name is required', 'Enter a valid email', 'Password needs 6 or more characters' ]
form valid: true

How it works

  • The validate() function returns an error text, or an empty text if the value is fine.
  • toggleClass('invalid', message !== '') adds the red border only for wrong fields.
  • e.preventDefault() stops the form if any field has an error.
  • The email check is a simple pattern. The final check must be done on the server too.
Note: Do not rely only on JavaScript validation. Always validate again on the server. See jQuery Forms.

Learn more about the similar topics:
Tutorials
No Content Found.
Exercises & Assignments
No Content Found.
Interview Questions & Answers
No Content Found.