AngularJS Forms

AngularJS Forms

AngularJS enriches form filling and validation. We can use ng-click event to handle the click button and use $dirty and $invalid flags to do the validation in a seamless way. Use novalidatewith a form declaration to disable any browser-specific validation. The form controls make heavy use of AngularJS events. Let us have a look at the events first.

Events

AngularJS provides multiple events associated with the HTML controls. For example, ng-click directive is generally associated with a button.AngularJS supports the following events:

ng-click

ng-dbl-click

ng-mousedown

ng-mouseup

ng-mouseenter

ng-mouseleave

ng-mousemove

ng-mouseover

ng-keydown

ng-keyup

ng-keypress

ng-change

ng-click

Reset data of a form using on-click directive of a button.

<input name="firstname" type="text"ng-model="firstName" required>

<input name="lastname" type="text" ng-model="lastName" required>

<input name="email" type="email" ng-model="email" required>

<button ng-click="reset()">Reset</button>

<script>

   function studentController($scope) {

      $scope.reset = function(){

         $scope.firstName = "Mahesh";

         $scope.lastName = "Parashar";

         $scope.email = "MaheshParashar@tutorialspoint.com";

  }  

   $scope.reset();

}

</script>

Validate Data

The following can be used to track error.

$dirty - states that value has been changed.

$invalid- states that value entered is invalid.

$error- states the exact error.

Example

The following example will showcase all the above-mentioned directives.

testAngularJS.htm

<html>

<head>

<title>Angular JS Forms</title>

<style>

table, th , td {

  border: 1px solid grey;

  border-collapse: collapse;

  padding: 5px;

}

table tr:nth-child(odd) {

  background-color: #f2f2f2;

}

table tr:nth-child(even) {

  background-color: #ffffff;

}

</style>

</head>

<body>

<h2>AngularJS Sample Application</h2>

<div ng-app="" ng-controller="studentController">

<form name="studentForm" novalidate>

<table border="0">

<tr><td>Enter first name:</td><td><input name="firstname" type="text"ng-model="firstName" required>

   <span style="color:red" ng-show="studentForm.firstname.$dirty && studentForm.firstname.$invalid">

      <span ng-show="studentForm.firstname.$error.required">First Name is required.</span>

   </span>

</td></tr>

<tr><td>Enter last name: </td><td><input name="lastname"  type="text"ng-model="lastName" required>

   <span style="color:red" ng-show="studentForm.lastname.$dirty && studentForm.lastname.$invalid">

      <span ng-show="studentForm.lastname.$error.required">Last Name is required.</span>

   </span>

</td></tr>

<tr><td>Email: </td><td><input name="email" type="email" ng-model="email" length="100" required>

<span style="color:red" ng-show="studentForm.email.$dirty &&studentForm.email.$invalid">

      <span ng-show="studentForm.email.$error.required">Email is required.</span>

          <span ng-show="studentForm.email.$error.email">Invalid email address.</span>

   </span>

</td></tr>

<tr><td><button ng-click="reset()">Reset</button></td><td><button

        ng-disabled="studentForm.firstname.$dirty && studentForm.firstname.$invalid ||

                        studentForm.lastname.$dirty && studentForm.lastname.$invalid ||

                        studentForm.email.$dirty &&studentForm.email.$invalid"

        ng-click="submit()">Submit</button></td></tr>

</table>

</form>

</div>

<script>

function studentController($scope) {

   $scope.reset = function(){

               $scope.firstName = "Mahesh";

               $scope.lastName = "Parashar";

               $scope.email = "MaheshParashar@tutorialspoint.com";

   }  

   $scope.reset();

}

</script>

<scriptsrc="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>

</body>

</html>

Output

Open the file testAngularJS.htm in a web browser and see the result.

AngularJS Forms

ليست هناك تعليقات:

إرسال تعليق