AngularJS 입력 유효성 검사
AngularJS 양식과 컨트롤은 입력된 데이터의 유효성을 검사할 수 있습니다.
입력 유효성 검사
이전 장에서는 AngularJS 양식과 컨트롤에 대해 배웠습니다.
AngularJS 양식 및 컨트롤은 유효성 검사 기능을 제공하고 불법적으로 입력된 데이터에 대해 사용자에게 경고할 수 있습니다.
클라이언트 측 검증은 사용자 입력 데이터의 보안을 보장할 수 없으므로 서버 측 데이터 검증도 필요합니다. |
애플리케이션 코드
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/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 = 'john.doe@gmail.com'; }); </script> </body> </html>
인스턴스 실행»
온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요
HTML 양식 속성novalidate 는 브라우저 기본 유효성 검사를 비활성화하는 데 사용됩니다. |
인스턴스 분석
AngularJS ng-model 지시문은 입력 요소를 모델에 바인딩하는 데 사용됩니다.
모델 개체에는 user 및 email이라는 두 가지 속성이 있습니다.
우리는 ng-show 명령을 사용했습니다. color:red는 이메일이 $dirty 또는 $invalid인 경우에만 표시됩니다.
Attribute | Description |
---|---|
$dirty | 양식에 작성 기록이 있습니다 |
$valid | 필드 콘텐츠가 합법적입니다 |
$invalid | 필드 콘텐츠는 불법입니다 |
$pristine | 양식에 작성 기록이 없습니다 |