Angular Form Validation

by Florian Bar

HTML

<h2>Validation Example</h2>

<form ng-app="myApp" ng-controller="validateCtrl" name="myForm" novalidate>

    <p>Username:<br>
        <input type="text" name="user" ng-model="user" required>
        <span class="validation-error" ng-show="myForm.user.$dirty && myForm.user.$invalid">
            <span ng-show="myForm.user.$error.required">Username is required.</span>
        </span>
    </p>

    <p>Email:<br>
        <input type="email" name="email" ng-model="email" required>
        <span class="validation-error" ng-show="myForm.email.$dirty && myForm.email.$invalid">
            <span ng-show="myForm.email.$error.required">Email is required.</span>
            <span ng-show="myForm.email.$error.email">Invalid email address.</span>
        </span>
    </p>

    <p>
        <button type="submit" ng-disabled="myForm.user.$dirty && myForm.user.$invalid || myForm.email.$dirty && myForm.email.$invalid">
            Submit
        </button>
    </p>

</form>

CSS

.validation-error { color: red; }

JavaScript

var myApp = angular.module('myApp', [])
    .controller('validateCtrl', function($scope) {
        $scope.user = 'John Doe';
        $scope.email = '[email protected]';
    });

console.log(myApp);