AngularJS 입력 유효성 검사



AngularJS 양식과 컨트롤은 입력된 데이터의 유효성을 검사할 수 있습니다.


입력 유효성 검사

이전 장에서는 AngularJS 양식과 컨트롤에 대해 배웠습니다.

AngularJS 양식 및 컨트롤은 유효성 검사 기능을 제공하고 불법적으로 입력된 데이터에 대해 사용자에게 경고할 수 있습니다.


Note클라이언트 측 검증은 사용자 입력 데이터의 보안을 보장할 수 없으므로 서버 측 데이터 검증도 필요합니다.

애플리케이션 코드

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>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요


Note HTML 양식 속성novalidate 는 브라우저 기본 유효성 검사를 비활성화하는 데 사용됩니다.

인스턴스 분석

AngularJS ng-model 지시문은 입력 요소를 모델에 바인딩하는 데 사용됩니다.

모델 개체에는 useremail이라는 두 가지 속성이 있습니다.

우리는 ng-show 명령을 사용했습니다. color:red는 이메일이 $dirty 또는 $invalid인 경우에만 표시됩니다.

AttributeDescription
$dirty양식에 작성 기록이 있습니다
$valid필드 콘텐츠가 합법적입니다
$invalid 필드 콘텐츠는 불법입니다
$pristine양식에 작성 기록이 없습니다