×

Html & Html5

The World's best Software Development Study Portal

AngularJS Forms


AngularJS facilitates you to create a form enriches with data binding and validation of input controls. Input controls are ways for a user to enter data. A form is a collection of controls for the purpose of grouping related controls together.



What is forms in angular?


Applications use forms to enable users to log in, to update a profile, to enter sensitive information, and to perform many other data-entry tasks. Angular provides two different approaches to handling user input through forms: reactive and template-driven.



What is Ng form in AngularJS?


The ng-form Directive in AngularJS is used to create nested form i.e. one form inside the other form. It specifies an inherit control from HTML form. It creates control group inside a form directive which can be used to determine the validity of a sub-group of controls.



AngularJS facilitates you to create a form enriches with data binding and validation of input controls. Input controls are ways for a user to enter data. A form is a collection of controls for the purpose of grouping related controls together.


Following are the input controls used in AngularJS forms:


1)Input elements

2)Select elements

3)Button elements

4)Textarea elements




Data-Binding

Input controls provides data-binding by using the ng-mode directive.

<input type="text" ng-model="firstname">

The application does now have a property named firstname. The ng-model directive binds the input controller to the rest of your application. The property firstname, can be referred to in a controller:

Example
<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.firstname = "John";
});
</script>



It can also be referred to elsewhere in the application:

Example
<form>
  First Name: <input type="text" ng-model="firstname">
</form>

<h1>You entered: {{firstname}}</h1>



Checkbox

A checkbox has the value true or false. Apply the ng-model directive to a checkbox, and use its value in your application.

Show the header if the checkbox is checked:
Example
 <form>
  Check to show a header:
  <input type="checkbox" ng-model="myVar">
</form>

<h1 ng-show="myVar">My Header</h1>



Radiobuttons


Bind radio buttons to your application with the ng-model directive.Radio buttons with the same ng-model can have different values, but only the selected one will be used.

Display some text, based on the value of the selected radio button:
Example

<form>
  Pick a topic:
  <input type="radio" ng-model="myVar" value="dogs">Dogs
  <input type="radio" ng-model="myVar" value="tuts">Tutorials
  <input type="radio" ng-model="myVar" value="cars">Cars
</form>

The value of myVar will be either dogs,tuts, or cars.





Selectbox


Bind select boxes to your application with the ng-model directive.The property defined in the ng-model attribute will have the value of the selected option in the selectbox.

Display some text, based on the value of the selected option:
Example

<form>
  Select a topic:
  <select ng-model="myVar">
    <option value="">
    <option value="dogs">Dogs
    <option value="tuts">Tutorials
    <option value="cars">Cars
  </select>
</form>

The value of myVar will be either dogs,tuts, or cars.





An AngularJS Form Example


First Name:

Last Name:


form = {{user}}

master = {{master}}





Application Code

Example
<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{{user}}</p>
  <p>master = {{{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
  $scope.master = {firstName: "John", lastName: "Doe"};
  $scope.reset = function() {
    $scope.user = angular.copy($scope.master);
  };
  $scope.reset();
});
</script>

Example Explained


  • The ng-app directive defines the AngularJS application.


  • The ng-controller directive defines the application controller.


  • The ng-model directive binds two input elements to the user object in the model.


  • The form Ctrl controller sets initial values to the master object, and defines the reset()method.


  • The reset()method sets the user object equal to the master object.


  • The ng-click directive invokes the reset()method, only if the button is clicked.


  • The novalidate attribute is not needed for this application, but normally you will use it in AngularJS forms, to override standard HTML5 validation.