AngularJS Input Validation


AngularJS forms and controls can validate input data.


Input Validation

In the previous chapters, you have learned about AngularJS forms and controls.

AngularJS forms and controls can provide validation functionality and warn users about invalid input data.

Note Client-side validation cannot ensure the security of user input data, so server-side data validation is also necessary.

Application Code

<!DOCTYPE html>
<html>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<body>

<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 style="color:red" 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 style="color:red" 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.</span>
  </span>
</p>

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

</form>

<script>
var app = angular.module('myApp', []);
app.controller('validateCtrl', function($scope) {
    $scope.user = 'John Doe';
    $scope.email = 'john.doe@gmail.com';
});
</script>

</body>
</html>

Try it Yourself »

Note HTML Form AttributesnovalidateUsed to disable the browser's default validation.

Example Analysis

AngularJS ng-modelThe directive is used to bind input elements to the model.

The model object has two attributes:userandemail。

We usedng-showthecolor:redin the email's$dirtyor$invalidare both true to display.

Property Description
$dirty Form has been filled in
$valid Field content is valid
$invalid Field content is invalid
$pristine Form has not been filled in
Other Extensions