Skip to content
AngularJS

Forms & Validation

Form with required, minlength, email validation, and disabled submit.

#angularjs#form#validation

Code

angularjs
<div ng-controller="FormController as vm">
  <form name="userForm" ng-submit="vm.submit()" novalidate>
    <label>Name:</label>
    <input type="text" name="name" ng-model="vm.user.name"
           required minlength="2">
    <span ng-show="userForm.name.$touched && userForm.name.$error.required">
      Required
    </span>
    <span ng-show="userForm.name.$error.minlength">Too short</span>

    <label>Email:</label>
    <input type="email" name="email" ng-model="vm.user.email" required>
    <span ng-show="userForm.email.$touched && userForm.email.$error.email">
      Invalid email
    </span>

    <button type="submit" ng-disabled="userForm.$invalid">Submit</button>
  </form>
</div>

<script>
angular.module('formsApp', [])
.controller('FormController', function() {
  const vm = this;
  vm.user = {};
  vm.submit = function() {
    if (this.userForm.$valid) {
      console.log('Submitted:', vm.user);
    }
  };
});
</script>