Open In App

AngularJS Form Validation

AngularJS performs form validation on the client side. AngularJS monitors the state of the form and input fields (input, text-area, select), and notify the user about the current state. AngularJS also holds information about whether the input fields have been touched, modified, or not. Form input fields have the following states:

These all are the properties of the input field which can be either true or false. Forms have the following states:



These all are the properties of the form which can be either true or false. These states can be used to show meaningful messages to the user.

Example 1: This example describes the AngularJS Form Validation, where the ng-show directive is utilized to display the required warning message for the inappropriate or incorrect input.






<!DOCTYPE html>
<html>
  
<head>
      <title>AngularJS Form Validation</title>
    <script src=
    </script>
    <style>
        body {
            font-family: Arial, Helvetica, sans-serif;
        }
        h1 {
            color: green;
        }
    </style>
</head>
  
<body ng-app="">
    <h1>GeeksforGeeks</h1>
    <h3>AngularJS Form Validation</h3>
    <form name="form1">
        <p>Name:
            <input name="username" 
                   ng-model="username" required>
            <span ng-show=
"form1.username.$pristine && form1.username.$invalid">
                The name is required.</span>
        </p>
        <p>Address:
            <input name="useraddress"
                   ng-model="useraddress" required>
        </p>
    </form>
    <p>
        We use the ng-show directive to only
        show the error message <br>if the field 
          has not modified yet AND content present 
          in the field is invalid.
    </p>
</body>
</html>

Output:

 

Custom validation: To create your own validation function add a new directive to your application, and deal with the validation inside a function with certain specified arguments.

Example 2: This example describes the AngularJS Custom Form Validation by creating our own directive, containing a custom validation function, and refer to it by using app-directive. The field will only be valid if the value is greater than or equal to 18.




<!DOCTYPE html>
<html>
  
<head>
    <title>AngularJS Form Validation</title>
    <script src=
    </script>
    <style>
        body {
            text-align: center;
            font-family: Arial, Helvetica, sans-serif;
        }
        h1 {
            color: green;
        }
    </style>
</head>
  
<body ng-app="developapp">
    <h1>GeeksforGeeks</h1>
    <h3>AngularJS Custom Form Validation</h3>
    <form name="form1">
        Username:
        <input name="username" required><br><br>
        Age:
        <input name="userage" 
               ng-model="userage" required app-directive>
    </form>
    <p>The input's valid state is:</p>
    <h3>{{form1.userage.$valid}}</h3>
    <script>
        var app = angular.module('developapp', []);
        app.directive('appDirective', function () {
            return {
                require: 'ngModel',
                link: function (scope, element, attr, mCtrl) {
                    function myValidation(value) {
                        if (value >= 18) {
                            mCtrl.$setValidity('charE', true);
                        } else {
                            mCtrl.$setValidity('charE', false);
                        }
                        return value;
                    }
                    mCtrl.$parsers.push(myValidation);
                }
            };
        });
    </script>
    <p>
        <b>Note:</b>
        The input field must have
        user age greater than 18 to be
        considered valid for voting.
    </p>
</body>
</html>

Output:

 


Article Tags :