Validating a Form with Parsley.js


In this tutorial, we will show how you can use Parsley.js, which is a JavaScript library that is mainly used to validate forms. Parsley helps in validating the forms in a very subtle and easy manner, and it is one of the widely used form validation libraries out there.

Features of Parsley.js

There are plenty of reasons why Parsley is a good choice for validating your JavaScript forms. Some of them are mentioned below.

  • Intuitive DOM API − The DOM API allows you to use simple English inside your HTML tags, and Parsley will do the rest. There's no need for you to write a single JavaScript line even for simple form validations.

  • Dynamic form validations − Parsley can easily detect form modifications and adapts to its validations accordingly.

  • Tons of validators − There are tons of in-built validators that are present in parsley. We can also make use of Ajax validators if needed.

  • Highly Reliable − It is bug free, and has been strongly tested as well.

  • UX Focused − Parsley focuses on UI and UX, and we can even override almost every default behaviour of parsley to fit your exact needs.

How to Validate a Form Using Parsley

Now that we know a little about Parsley.js, it's time we focus on an example in which we will use Parsley. Consider the following "index.html" file in which we have a form with a simple JavaScript code embedded into it.

Example

index.html

<!DOCTYPE html>
<html lang="en">
<head>
   <meta <!DOCTYPE html>
   <html lang="en">
   <head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Parsely.js Example</title>
   <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
   crossorigin="anonymous"></script>
   <script
   src="https://cdn.jsdelivr.net/gh/guillaumepotier/Parsley.js@2.9.2/dist/parsley.js"></script>
</head>
<body>
   <h2>Fill in the form and click the validate button at the bottom</h2>
   <form id="demo-form" data-parsley-validate="">
   <label for="fullname">Enter Your Full Name * :</label>
   <input type="text" class="form-control" name="fullname" required="">
   <br /><br />
   <label for="email">Enter Your Email * :</label>
   <input type="email" class="form-control" name="email" data-parsleytrigger="change" required="">
   <br /><br />
   <label for="contactMethod">Please Enter Your Preferred Contact Method*:</label> Email: <input type="radio" name="contactMethod"id="contactMethodEmail" value="Email" required=""> Phone: <input type="radio" name="contactMethod" id="contactMethodPhone" value="Phone">
   <br /><br />
   <label for="hobbies">Enter Your Hobbies (Optional, but 2 minimum):</label>
   <p>
      Coding <input type="checkbox" name="hobbies[]" id="hobby1"value="ski" data-parsley-mincheck="2"><br> Walking <input type="checkbox"name="hobbies[]" id="hobby2" value="run"><br> Eating <input type="checkbox" name="hobbies[]" id="hobby3" value="eat"><br> Sleeping <input type="checkbox" name="hobbies[]" id="hobby4" value="sleep"><br> Traveling <input type="checkbox" name="hobbies[]" id="hobby5" value="read"><br> Writing <input type="checkbox" name="hobbies[]" id="hobby6" value="code"><br></p>
   <p>
      <label for="heard">Heard about us via *:</label>
      <select id="heard" required="">
         <option value="">Choose..</option>
         <option value="press">Press</option>
         <option value="net">Internet</option>
         <option value="mouth">Word of mouth</option>
         <option value="other">Other..</option>
      </select>
   </p>
   <p>
      <label for="message">Message (20 chars min, 100 max) :</label>
      <textarea id="message" class="form-control" name="message" dataparsley- trigger="keyup" data-parsley-minlength="20" data-parsleymaxlength=" 100" data-parsley-minlength-message="Come on! You need to enter at least a 20 character comment.." data-parsley-validationthreshold="10"></textarea>
   </p>
   <br>
   <input type="submit" class="btn btn-default" value="validate">
   </form>
   <script>
      $(function() {
         $('#demo-form').parsley().on('field:validated', function() {
            var ok = $('.parsley-error').length === 0;
            $('.bs-callout-info').toggleClass('hidden', !ok);
            $('.bs-callout-warning').toggleClass('hidden', ok);
         })
         .on('form:submit', function() {
            return false;
         });
      });
   </script>
</body>
</html>

Click the "Edit and Run" button at the top to run this this code and see the output form.

Explanation

In this code, we have a form in which there are multiple text areas that expect different values. In each value, we have either a text keyword or a checkbox or an option.

Also, there is a "validate" button at the end of the code. When you click that button without having filled any of the forms, you will get a pop-up error from Parsley, and when you enter some fields that aren't what they expect, then you will get a validation error from Parsley.js.

You can run this code here, and then fill out different fields according to your choice for testing purpose.

Conclusion

In this tutorial, we used a simple example to demonstrate how you can use Parsley.js to validate forms in JavaScript.

Updated on: 15-Jun-2023

890 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements