Latest web development tutorials

AngularJS 輸入驗證

AngularJS 表單和控件可以驗證輸入的數據。


輸入驗證

在前面的幾個章節中,你已經學到關於AngularJS 表單和控件的知識。

AngularJS 表單和控件可以提供驗證功能,並對用戶輸入的非法數據進行警告。

Note 客戶端的驗證不能確保用戶輸入數據的安全,所以服務端的數據驗證也是必須的。

應用代碼

< !DOCTYPE html >
< html >
< script src= "http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js" > < /script >
< body >

< h2 > Validation Example < /h2 >

< form ng-app= "myApp" ng-controller= "validateCtrl"
name= "myForm" novalidate >

< p >用戶名: < br >
< input type= "text" name= "user" ng-model= "user" required >
< span style= "color:red" ng-show= "myForm.user.$dirty && myForm.user.$invalid" >
< span ng-show= "myForm.user.$error.required" >用戶名是必須的。 < /span >
< /span >
< /p >

< p >郵箱: < br >
< input type= "email" name= "email" ng-model= "email" required >
< span style= "color:red" ng-show= "myForm.email.$dirty && myForm.email.$invalid" >
< span ng-show= "myForm.email.$error.required" >郵箱是必須的。 < /span >
< span ng-show= "myForm.email.$error.email" >非法的郵箱。 < /span >
< /span >
< /p >

< p >
< input type= "submit"
ng-disabled= "myForm.user.$dirty && myForm.user.$invalid ||
myForm.email.$dirty && myForm.email.$invalid" >
< /p >

< /form >

< script >
var app = angular.module('myApp', []);
app.controller('validateCtrl', function($scope) {
$scope.user = 'John Doe';
$scope.email = '[email protected]';
});
< /script >

< /body >
< /html >

嘗試一下»

Note HTML表單屬性novalidate用於禁用瀏覽器默認的驗證。

實例解析

AngularJS ng-model指令用於綁定輸入元素到模型中。

模型對像有兩個屬性: useremail

我們使用了ng-show指令, color:red在郵件是$dirty$invalid才顯示。

屬性 描述
$dirty 表單有填寫記錄
$valid 字段內容合法的
$invalid 字段內容是非法的
$pristine 表單沒有填寫記錄