This demonstrates using the prefix and postfix formatting with form elements for a nice way to validate fields in AngularJS
A Pen by Sean Patterson on CodePen.
This demonstrates using the prefix and postfix formatting with form elements for a nice way to validate fields in AngularJS
A Pen by Sean Patterson on CodePen.
| <html lang="en"> | |
| <head> | |
| <link rel="stylesheet" href="//cdn.jsdelivr.net/foundation/5.0.3/css/foundation.min.css" /> | |
| <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.js"></script> | |
| <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular-animate.js"></script> | |
| <script src="//cdn.jsdelivr.net/webjars/angular-foundation/0.3.0/mm-foundation-tpls.min.js"></script> | |
| </head> | |
| <body ng-app='app' class="ng-cloak"> | |
| <div class="row" ng-controller="AppCtrl"> | |
| <div class="small-12 columns text-center"> | |
| <h2>Create Account</h2> | |
| </div> | |
| </div> | |
| <div class="row"> | |
| <div class="text-center"> | |
| <alert ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)">{{alert.msg}}</alert> | |
| </div> | |
| </div> | |
| <div class="row"> | |
| <div class="small-12 columns"> | |
| <form name="createForm" ng-submit="addAccount()"> | |
| <div class="row collapse prefix-radius postfix-radius"> | |
| <div class="small-3 columns"> | |
| <a class="button prefix">First Name</a> | |
| </div> | |
| <div class="small-8 columns"> | |
| <input name="firstName" type="text" ng-model="firstName" placeholder="First Name" required /> | |
| </div> | |
| <div class="small-1 columns"> | |
| <a class="button postfix"> | |
| <span class="error" ng-show="createForm.firstName.$error.required"> | |
| | |
| </span> | |
| <span class="valid" ng-hide="createForm.firstName.$error.required"> | |
| | |
| </span> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="row collapse prefix-radius postfix-radius"> | |
| <div class="small-3 columns"> | |
| <a class="button prefix">Last Name</a> | |
| </div> | |
| <div class="small-8 columns"> | |
| <input name="lastName" type="text" ng-model="lastName" placeholder="Last Name" required /> | |
| </div> | |
| <div class="small-1 columns"> | |
| <a class="button postfix"> | |
| <span class="error" ng-show="createForm.lastName.$error.required"> | |
| | |
| </span> | |
| <span class="valid" ng-hide="createForm.lastName.$error.required"> | |
| | |
| </span> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="row collapse prefix-radius postfix-radius"> | |
| <div class="small-3 columns"> | |
| <a class="button prefix">Email</a> | |
| </div> | |
| <div class="small-8 columns"> | |
| <input name="email" type="email" ng-model="email" placeholder="E-Mail Address" required /> | |
| </div> | |
| <div class="small-1 columns"> | |
| <a class="button postfix"> | |
| <span class="error" ng-show="createForm.email.$error.required || createForm.email.$invalid"> | |
| | |
| </span> | |
| <span class="valid" ng-hide="createForm.email.$error.required || createForm.email.$invalid"> | |
| | |
| </span> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="row collapse prefix-radius postfix-radius"> | |
| <div class="small-3 columns"> | |
| <a class="button prefix">Password</a> | |
| </div> | |
| <div class="small-8 columns"> | |
| <input name="pass" type="password" ng-model="pass" placeholder="Password" required /> | |
| </div> | |
| <div class="small-1 columns"> | |
| <a class="button postfix"> | |
| <span class="error" ng-show="createForm.pass.$error.required"> | |
| | |
| </span> | |
| <span class="valid" ng-hide="createForm.pass.$error.required"> | |
| | |
| </span> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="row"> | |
| <div class="small-6 columns text-center"> | |
| <input type="submit" value="Create" class="button primary" ng-disabled="createForm.$invalid" /> | |
| </div> | |
| <div class="small-6 columns text-center"> | |
| <a ng-click="cancelAccount()" class="button danger">Cancel</a> | |
| </div> | |
| </div> | |
| </form> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |
| app = angular.module('app', ['ngAnimate']); | |
| app.controller('AppCtrl', ['$scope', function($scope) { | |
| // Alert methods | |
| $scope.alerts = []; | |
| $scope.addAlert = function (messageType, messageText) { | |
| $scope.alerts.push({ type: messageType, msg: messageText }); | |
| }; | |
| $scope.closeAlert = function (index) { | |
| $scope.alerts.splice(index, 1); | |
| }; | |
| addAccount = function(){ | |
| $scope.addAlert('success', 'Account Created.'); | |
| } | |
| cancelAccount = function(){ | |
| $scope.addAlert('alert', 'Cancelled.'); | |
| } | |
| }]); |
| .valid | |
| { | |
| display: block; | |
| padding: 0.375rem 0.5625rem 0.5625rem; | |
| margin-top: -1px; | |
| margin-bottom: 1rem; | |
| font-size: 0.75rem; | |
| font-weight: normal; | |
| font-style: italic; | |
| background-color: #43ac6a; | |
| border-color: #3a945b; | |
| color: #fff; | |
| } |