萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> 詳細解讀AngularJS中的表單驗證編程

詳細解讀AngularJS中的表單驗證編程

   這篇文章主要介紹了詳細解讀AngularJS中的表單驗證編程,AngularJS是一個非常熱門的JavaScript庫,需要的朋友可以參考下

  需求

  Name 必填

  Username 非必填,最小長度3,最大長度8

  Email 非必填,但必須是合法的email

  驗證未通過的表單不能提交

  顯示一個必填或者非法email格式的錯誤信息

  如果正確提交就彈出一個祝賀信息

  現在知道我們的目標了吧,讓我們一起來構建這個東西吧.

  Angular 的表單屬性 $valid, $invalid, $pristine, $dirty

  Angular 提供了有關表單的屬性來幫助我們驗證表單. 他們給我們提供了各種有關一個表單及其輸入的信息,並且應用到了表單和輸入.

  屬性類

  描述

  $valid ng-valid Boolean 告訴我們這一項當前基於你設定的規則是否驗證通過

  $invalid ng-invalid Boolean 告訴我們這一項當前基於你設定的規則是否驗證未通過

  $pristine ng-pristine Boolean 如果表單或者輸入框沒有使用則為True

  $dirty ng-dirty Boolean 如果表單或者輸入框有使用到則為True

  Angular 也提供了有關表單及其輸入框的類,以便你能夠依據每一個狀態設置其樣式.

  訪問表單屬性

  方位表單:

  .

  訪問一個輸入框: ..

  設置我們的表單

  我們將使用一個簡單的表單來做演示.

201561995404669.png (765×364)

  我們將需要兩個文件:

  index.html 我們用來顯示表單的代碼

  app.js 我們的Angular應用程序和控制器 (幾乎沒有任何代碼)

  Our Form Code index.html

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <!-- index.html --> <!DOCTYPE html> <html> <head> <!-- CSS ===================== --> <!-- load bootstrap --> <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css"> <style> body { padding-top:30px; } </style>   <!-- JS ===================== --> <!-- load angular --> <script src="http://code.angularjs.org/1.2.6/angular.js"></script> <script src="app.js"></script> </head>   <!-- apply angular app and controller to our body --> <body ng-app="validationApp" ng-controller="mainController"> <div class="container"> <div class="col-sm-8 col-sm-offset-2">   <!-- PAGE HEADER --> <div class="page-header"><h1>AngularJS Form Validation</h1></div>   <!-- FORM --> <!-- pass in the variable if our form is valid or invalid --> <form name="userForm" ng-submit="submitForm(userForm.$valid)" novalidate> <!-- novalidate prevents HTML5 validation since we will be validating ourselves -->   <!-- NAME --> <div class="form-group"> <label>Name</label> <input type="text" name="name" class="form-control" ng-model="name" required> </div>   <!-- USERNAME --> <div class="form-group"> <label>Username</label> <input type="text" name="username" class="form-control" ng-model="user.username" ng-minlength="3" ng-maxlength="8"> </div>   <!-- EMAIL --> <div class="form-group"> <label>Email</label> <input type="email" name="email" class="form-control" ng-model="email"> </div>   <!-- SUBMIT BUTTON --> <button type="submit" class="btn btn-primary">Submit</button>   </form>   </div><!-- col-sm-8 --> </div><!-- /container --> </body> </html>

  這裡列出了一些關鍵點:

  novalidate: 它將會組織默認的HTML5驗證,因為這會由我們自己來做(我們自己的將會更棒)

  我們在輸入框上應用了ng-model,以便將來自表單的數據綁定到angular變量

  username上的ng-minlength 和 ng-maxlength會自己創建其規則

  name 輸入框是必填的

  email 輸入框有屬性 type=”email”

  驗證規則

  Angular 有很多驗證規則,像是 tong-min leng than dng-max length.

  Angular還可以自己配置規則. Angular輸入指引上有說明 .

  ?

1 2 3 4 5 6 7 8 9 10 <input ng-model="{ string }" name="{ string }" required ng-required="{ boolean }" ng-minlength="{ number }" ng-maxlength="{ number }" ng-pattern="{ string }" ng-change="{ string }"> </input>

  現在建好了表單, 接著創建Angular應用和控制器,ng-app ng-控制器.

  應用的 Codeapp.js

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // app.js // create angular app var validationApp = angular.module('validationApp', []);   // create angular controller validationApp.controller('mainController', function($scope) {   // function to submit the form after all validation has occurred $scope.submitForm = function(isValid) {   // check to make sure the form is completely valid if (isValid) { alert('our form is amazing'); }   };   });
copyright © 萬盛學電腦網 all rights reserved