article

Tuesday, December 14, 2021

AngularJS Form Validation with Bootstrap

AngularJS Form Validation with bootstrap

Angular Form Properties:

Property Name Description

$valid         This property tells that the form/input field value is valid. True/False.
$invalid         This property tells that the form/input field value is invalid. True/False.
$pristine         This boolean property tells that the form/input has not been used/modified yet.
$dirty         This boolean property tells that the form/input has been used/modified.
$touched         This boolean property says that input field is touched (applied only for input).
$untouched This boolean property says that input field is not touched yet (applied only for input).
$submitted This boolean property says that the form is submitted (applied only for form).


Classes:

Class Name Description

ng-valid         The input filed content is valid.
ng-invalid The input filed content is not valid.
ng-pristine The form/ input field has not been modified/used yet.
ng-dirty         The form/ input field has been modified/used.
ng-touched The input field has been touched.
ng-untouched The input field has not been touched yet.
//formvalidation.html
<!DOCTYPE html>
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body ng-app="validationApp" ng-controller="mainController">
<div class="container" style="width:600px">
    <div class="page-header"><h1>AngularJS Form Validation</h1></div>
    <form name="loginForm" ng-submit="submitForm(loginForm.$valid)" novalidate>
        <div class="form-group" ng-class="{ 'has-error' : loginForm.name.$invalid && !loginForm.name.$pristine }">
            <label>Name*</label>
            <input type="text" name="name" class="form-control" ng-model="name" ng-minlength="3" ng-maxlength="8" required>
            <p ng-show="loginForm.name.$dirty && loginForm.name.$error.required" class="help-block">Name is required</p>
            <p ng-show="loginForm.name.$error.minlength" class="help-block">Name is too short.</p>
            <p ng-show="loginForm.name.$error.maxlength" class="help-block">Name is too long.</p>
        </div>         
        <div class="form-group" ng-class="{ 'has-error' : loginForm.userName.$invalid && !loginForm.userName.$pristine }">
            <label>UserName(email)*</label>
            <input type="email" name="userName" class="form-control" ng-model="userName">
            <p ng-show="loginForm.userName.$invalid && !loginForm.userName.$pristine" class="help-block">Enter a valid email.</p>
        </div>
        <div class="form-group" ng-class="{ 'has-error' : loginForm.password.$invalid && !loginForm.password.$pristine }">
            <label>Password*</label>
            <input type="password" name="password" class="form-control" ng-model="password" ng-minlength="6" ng-maxlength="8" required>
            <p ng-show="loginForm.password.$invalid && !loginForm.password.$pristine" class="help-block">Password must be between 6-8 characters.</p>
        </div>        
        <button type="submit" class="btn btn-primary" ng-disabled="loginForm.$invalid">Submit</button>        
    </form>
    </div>
<script>
var validationApp = angular.module('validationApp', []);

validationApp.controller('mainController', function($scope) {

	// function to submit the form after all validation has occurred			
	$scope.submitForm = function(isValid) {

		// check to make sure the form is completely valid
		if (isValid) { 
			alert('Login Form is valid');
		}
	};
});
</script>
</body>
</html>

Related Post