English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
AngularJS 양식과 컨트롤은 입력 데이터를 검증할 수 있습니다。
이전 몇 개의 장에서는 AngularJS 양식과 컨트롤에 대한 지식을 배웠습니다。
AngularJS 양식과 컨트롤은 검증 기능을 제공하고, 불법적인 사용자 입력을 경고할 수 있습니다。
클라이언트의 입력 검증은 사용자가 입력한 데이터의 안전을 보장할 수 없기 때문에 서버의 데이터 검증도 필요합니다。
!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script> </head> <body> <h2>验证示例</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>테스트해 보세요 ‹/›
HTML 양식 속성 novalidate는 브라우저의 기본 검증을 비활성화하는 데 사용됩니다.
AngularJS ng-model 지시어는 입력 요소를 모델에 바인딩하는 데 사용됩니다.
모델 객체는 두 개의 속성을 가집니다: user 과 email。
우리는 다음을 사용했습니다 ng-show지시어, color:red 이 이메일의 $dirty 또는 $invalid 두 가지 모두 true 일 때만 표시됩니다.
속성 | 설명 |
---|---|
$dirty | 양식에 입력 기록이 있습니다 |
$valid | 필드 내용이 정상적입니다 |
$invalid | 필드 내용이 불법적입니다 |
$pristine | 양식에 입력 기록이 없습니다 |