웹 프론트엔드 JS 튜토리얼 AngularJS는 수동 양식 확인 및 자동 양식 확인을 구현합니다._AngularJS

AngularJS는 수동 양식 확인 및 자동 양식 확인을 구현합니다._AngularJS

May 16, 2016 pm 03:26 PM
angularjs 양식 유효성 검사

AngularJS에는 대략 두 가지 유형의 양식 유효성 검사가 있습니다. 하나는 수동 유효성 검사이고 다른 하나는 자동 유효성 검사입니다.
1. 수동 확인
소위 수동 검증은 AngularJS 양식의 속성을 통해 검증하는 것입니다. AngularJS 양식이 되려면 두 가지 조건을 충족해야 합니다.

1. 양식 요소에 novalidate="novalidate"를 추가합니다.

2. 다음과 같이 양식 요소 에 name="theForm"을 추가합니다.

<!DOCTYPE html>
<html lang="en" ng-app="myApp1">
<head>
 <meta charset="UTF-8">
 <title></title>
 <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
 <link rel="stylesheet" href="../css/main.css"/>
</head>
<body>
<nav >
 <div class="container">
  <div class="navbar-header">
   <a href="/" class="navbar-brand">Form Submitting</a>
  </div>
 </div>
</nav>
 
<div class="container main-content" ng-controller="myCtrl1">
 <!--novalidate让表单不要使用html验证-->
 <!--theForm变成scope的一个字段-->
 <form ng-submit="onSubmit(theForm.$valid)" novalidate="novalidate" name="theForm">
  <div class="form-group">
   <label for="name">Name</label>
   <input type="text" class="form-control" id="name" ng-model="formModel.name"/>
  </div>
 
  <div class="form-group" ng-class="{
   'has-error': !theForm.email.$valid && (!theForm.$pristine || theForm.$submitted),
   'has-success': theForm.email.$valid && (!theForm.$pristine || theForm.$submitted)
   }">
   <label for="email">Email</label>
   <input type="email" class="form-control" id="email" ng-model="formModel.email" required="required" name="email"/>
   <p class="help-block" ng-show="theForm.email.$error.required && (!theForm.$pristine || theForm.$submitted)">必填</p>
   <p class="help-block" ng-show="theForm.email.$error.email && (!theForm.$pristine || theForm.$submitted)">email格式不正确</p>
  </div>
 
  <div class="form-group">
   <label for="username">Username</label>
   <input type="text" class="form-control" id="username" ng-model="formModel.username"/>
  </div>
 
  <div class="form-group">
   <label for="age">Age</label>
   <input type="number" class="form-control" id="age" ng-model="formModel.age"/>
  </div>
 
  <div class="form-group">
   <label for="sex">Sex</label>
   <select name="sex" id="sex" class="form-control" ng-model="formModel.sex">
    <option value="">Please choose</option>
    <option value="male">Mail</option>
    <option value="femail">Femail</option>
   </select>
  </div>
 
  <div class="form-group">
   <label for="password">Password</label>
   <input type="text" class="form-control" id="password" ng-model="formModel.password"/>
  </div>
 
  <div class="form-group">
   <button class="btn btn-primary" type="submit">Register</button>
  </div>
 
   <pre class="brush:php;toolbar:false">
    {{theForm | json}}
   
로그인 후 복사
● 양식에 novalidate="novalidate"를 추가하면 양식에서 더 이상 HTML5 유효성 검사 기능을 사용하지 않게 됩니다.

● 양식에 name="theForm"을 추가하면 해당 양식의 이름이 theForm이라는 의미입니다. 예를 들어 theForm을 사용하는 방법은 양식이 수정되었는지 확인합니다.theForm.$submitted
● ng-submit
을 통해 양식을 제출하세요. ● formModel은 $scope
의 속성입니다. ● theForm.email.$valid, theForm.$pristine, theForm.$submitted, theForm.email.$error.required, theForm.email.$ 등 AngularJS 양식의 다양한 속성을 사용하여 양식의 이메일을 수동으로 확인합니다. 오류.이메일

{{theForm | json}}

을 통해 AngularJS 양식의 모든 속성을 인쇄합니다.

{
 "$error": {
  "required": [
   {
    "$validators": {},
    "$asyncValidators": {},
    "$parsers": [],
    "$formatters": [
     null
    ],
    "$viewChangeListeners": [],
    "$untouched": true,
    "$touched": false,
    "$pristine": true,
    "$dirty": false,
    "$valid": false,
    "$invalid": true,
    "$error": {
     "required": true
    },
    "$name": "email",
    "$options": null
   }
  ]
 },
 "$name": "theForm",
 "$dirty": false,
 "$pristine": true,
 "$valid": false,
 "$invalid": true,
 "$submitted": false,
 "email": {
  "$validators": {},
  "$asyncValidators": {},
  "$parsers": [],
  "$formatters": [
   null
  ],
  "$viewChangeListeners": [],
  "$untouched": true,
  "$touched": false,
  "$pristine": true,
  "$dirty": false,
  "$valid": false,
  "$invalid": true,
  "$error": {
   "required": true
  },
  "$name": "email",
  "$options": null
 },
 "sex": {
  "$validators": {},
  "$asyncValidators": {},
  "$parsers": [],
  "$formatters": [],
  "$viewChangeListeners": [],
  "$untouched": true,
  "$touched": false,
  "$pristine": true,
  "$dirty": false,
  "$valid": true,
  "$invalid": false,
  "$error": {},
  "$name": "sex",
  "$options": null
 }
}
로그인 후 복사
위에서는 이름 속성이 있는 모든 입력이 위에 표시됩니다.

모듈, 컨트롤러 및 양식 제출 방법은 second.js 파일에 정의되어 있습니다.

var myApp1 = angular.module('myApp1',[]);
 
myApp1.controller('myCtrl1', function($scope, $http){
  $scope.formModel = {};
 
  $scope.onSubmit = function(){
    $http.post('someurl',$scope.formModel)
      .success(function(data){
        console.log(':)');
      })
      .error(function(data){
        console.log(':(');
      });
 
    console.log($scope.formModel);
  };
});
로그인 후 복사
위의 양식 검증 방법의 장점은 제어 가능성이 높지만 상대적으로 번거롭다는 것입니다.


2.자동인증
AngularJS의 또 다른 양식 확인 방법은 지시문을 통해 구현되는 자동 확인입니다. AngularJS와 함께 제공되는 지시문 외에도 타사 모듈 angle-auto-validate도 사용해야 합니다.

angular-auto-validate 정보: ● 설치: npm i angle-auto-validate
● 인용문:
● 모듈 종속성: var myApp = angle.module("app", ["jcs-autoValidate"]);
오류 메시지를 현지화하려면 타사 모듈
angular-localize도 필요합니다. ● 설치: npm install angle-localize --save
● 모듈 종속성: var myApp =angular.module("app", ["localize"]);
● 인용문:

<script src="../node_modules/angular-sanitize/angular-sanitize.min.js"></script>
<script src="../node_modules/angular-localize/angular-localize.min.js"></script>
로그인 후 복사
추가로 양식 제출 버튼을 클릭하면 버튼을 비활성화하고 대기 효과를 표시해야 합니다. 타사 모듈인 angle-ladda를 사용해야 합니다.

● 설치: bower install angle-ladda --save

● 모듈 종속성: var myApp = angle.module("app", ["angular-ladda"]);
● 인용문:

<link rel="stylesheet" href="../bower_components/ladda/dist/ladda-themeless.min.css"/>

<script src="../bower_components/ladda/dist/spin.min.js"></script>
<script src="../bower_components/ladda/dist/ladda.min.js"></script>
<script src="../bower_components/angular-ladda/dist/angular-ladda.min.js"></script>

로그인 후 복사
페이지는 다음과 같습니다.


<!DOCTYPE html>
<html lang="en" ng-app="myApp1">
<head>
 <meta charset="gb2312">
 <title></title>
 <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css"/>
 <link rel="stylesheet" href="../bower_components/ladda/dist/ladda-themeless.min.css"/>
 <link rel="stylesheet" href="../css/main.css"/>
</head>
<body>
<nav >
 <div class="container">
  <div class="navbar-header">
   <a href="/" class="navbar-brand">Form Validating Auto</a>
  </div>
 </div>
</nav>
 
<div class="container main-content" ng-controller="myCtrl1">
 <!--novalidate让表单不要使用html验证-->
 <!--theForm变成scope的一个字段-->
 <form ng-submit="onSubmit()" novalidate="novalidate">
  <div class="form-group">
   <label for="name" class="control-label">Name</label>
   <input type="text" class="form-control" id="name" ng-model="formModel.name" required="required"/>
  </div>
 
  <div class="form-group">
   <label for="email" class="control-label">Email</label>
   <input type="email" class="form-control" id="email" ng-model="formModel.email" required="required"/>
 
  </div>
 
  <div class="form-group">
   <label for="username" class="control-label">Username</label>
   <input type="text"
       class="form-control"
       id="username"
       ng-model="formModel.username"
       required="required"
       ng-pattern="/^[A-Za-z0-9_]{1,32}$/"
       ng-minlength="7"
       ng-pattern-err-type="badUsername"
    />
  </div>
 
  <div class="form-group">
   <label for="age" class="control-label">Age</label>
   <input type="number"
       class="form-control"
       id="age"
       ng-model="formModel.age"
       required="required"
       min="18"
       max="65"
       ng-min-err-type="tooYoung"
       ng-max-err-type="tooOld"
    />
  </div>
 
  <div class="form-group">
   <label for="sex" class="control-label">Sex</label>
   <select name="sex" id="sex" class="form-control" ng-model="formModel.sex" required="required">
    <option value="">Please choose</option>
    <option value="male">Mail</option>
    <option value="femail">Femail</option>
   </select>
  </div>
 
  <div class="form-group">
   <label for="password" class="control-label">Password</label>
   <input type="text" class="form-control" id="password" ng-model="formModel.password" required="required" ng-minlength="6"/>
  </div>
 
  <div class="form-group">
   <!--<button class="btn btn-primary" ng-click="onSubmit()">Register</button>-->
   <button class="btn btn-primary"
       ladda = "submitting"
       data-style="expand-right"
       type="submit">
    <span ng-show="submitting">正在注册...</span>
    <span ng-show="!submitting">注册</span>
   </button>
  </div>
 
   <pre class="brush:php;toolbar:false">
    {{formModel | json}}
   
<script src="../node_modules/angular-sanitize/angular-sanitize.min.js"></script> <script src="../node_modules/angular-localize/angular-localize.min.js"></script>
로그인 후 복사
위의 경우 제출 버튼을 먼저 살펴보세요.


<div >
 <!--<button class="btn btn-primary" ng-click="onSubmit()">Register</button>-->
 <button class="btn btn-primary"
     ladda = "submitting"
     data-style="expand-right"
     type="submit">
  <span ng-show="submitting">正在注册...</span>
  <span ng-show="!submitting">注册</span>
 </button>
</div>
로그인 후 복사
● ladda 속성 값은 bool 값입니다. true는 동적 대기 효과가 표시된다는 의미이고, false는 범위에 있는 속성입니다. ● data-style="expand-right"는 버튼 오른쪽에 동적 대기 효과를 표시한다는 의미입니다


양식의 Age 필드를 예로 들어보겠습니다.


<div >
 <label for="age" class="control-label">Age</label>
 <input type="number"
     class="form-control"
     id="age"
     ng-model="formModel.age"
     required="required"
     min="18"
     max="65"
     ng-min-err-type="tooYoung"
     ng-max-err-type="tooOld"
  />
</div>
로그인 후 복사
그 중 min, max는 AgularJS의 지시어이고, ng-min-err-type은 Angle-auto-validate의 지시어입니다. 여기서 따르는 규칙은 ng-AngularJS 양식 유효성 검사의 -err-type 지시문입니다. tooYoung 및 tooOld의 기능은 무엇이며 어디에 사용됩니까?
모듈 수준에서 사용되며 form_validation_auto.js 파일에 정의되어 있습니다.



var myApp1 = angular.module('myApp1',['jcs-autoValidate','localize','angular-ladda']);
 
myApp1.run(function(defaultErrorMessageResolver){
  defaultErrorMessageResolver.getErrorMessages().then(function(errorMessages){
    errorMessages['tooYoung'] = '年龄必须小于{0}';
    errorMessages['tooOld'] = '年龄不能大于{0}';
    errorMessages['badUsername'] = '用户名只能包含数字、字母或下划线';
  });
});
 
myApp1.controller('myCtrl1', function($scope, $http){
  $scope.formModel = {};
  $scope.submitting = false;
 
  $scope.onSubmit = function(){
 
    $scope.submitting = true;
    console.log('已提交');
    console.log($scope.formModel);
 
    $http.post('url',$scope.formModel)
      .success(function(data){
        console.log(':)');
        $scope.submitting = false;
      })
      .error(function(data){
        console.log(':(');
        $scope.submitting = false;
      });
  };
});
로그인 후 복사
위에서는 run 메소드에서 angle-auto-validate의 defaultErrorMessageResolver 서비스를 사용하여 오류 메시지를 사용자 정의했습니다. 페이지의 tooYoung 및 tooOld는 여기에서 errorMessages['tooYoung'] 및 errorMessages['badUsername']에 해당합니다.

여기서 전체 내용을 소개합니다. AngularJS를 배워서 폼 검증을 구현하는 데 도움이 되길 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 CodeIgniter4 프레임워크를 사용하는 방법은 무엇입니까? PHP에서 CodeIgniter4 프레임워크를 사용하는 방법은 무엇입니까? May 31, 2023 pm 02:51 PM

PHP는 매우 널리 사용되는 프로그래밍 언어이며 CodeIgniter4는 일반적으로 사용되는 PHP 프레임워크입니다. 웹 애플리케이션을 개발할 때 프레임워크를 사용하면 개발 프로세스 속도를 높이고 코드 품질을 향상시키며 유지 관리 비용을 줄일 수 있습니다. 이 기사에서는 CodeIgniter4 프레임워크를 사용하는 방법을 소개합니다. CodeIgniter4 프레임워크 설치 CodeIgniter4 프레임워크는 공식 홈페이지(https://codeigniter.com/)에서 다운로드할 수 있습니다. 아래에

Flask-WTF를 사용하여 양식 유효성 검사를 구현하는 방법 Flask-WTF를 사용하여 양식 유효성 검사를 구현하는 방법 Aug 03, 2023 pm 06:53 PM

Flask-WTF를 사용하여 양식 유효성 검사를 구현하는 방법 Flask-WTF는 웹 양식 유효성 검사를 처리하기 위한 Flask 확장으로 사용자가 제출한 데이터의 유효성을 검사하는 간결하고 유연한 방법을 제공합니다. 이 문서에서는 Flask-WTF 확장을 사용하여 양식 유효성 검사를 구현하는 방법을 보여줍니다. Flask-WTF 설치 Flask-WTF를 사용하려면 먼저 설치가 필요합니다. pip 명령을 사용하여 설치할 수 있습니다: pipinstallFlask-WTF F에서 필수 모듈 가져오기

Laravel 개발: Laravel 유효성 검사를 사용하여 양식 요청의 유효성을 검사하는 방법은 무엇입니까? Laravel 개발: Laravel 유효성 검사를 사용하여 양식 요청의 유효성을 검사하는 방법은 무엇입니까? Jun 13, 2023 pm 01:34 PM

Laravel은 개발자의 작업 속도를 높이기 위해 많은 편리한 기능을 제공하는 인기 있는 PHP 웹 개발 프레임워크입니다. 그 중 LaravelValidation은 양식 요청과 사용자가 입력한 데이터를 쉽게 검증하는 데 도움이 되는 매우 실용적인 기능입니다. 이 글에서는 LaravelValidation을 사용하여 양식 요청의 유효성을 검사하는 방법을 소개합니다. LaravelValidation이 무엇인가요?LaravelValidation은 La입니다.

Golang을 사용하여 웹 애플리케이션에 대한 양식 유효성 검사를 구현하는 방법 Golang을 사용하여 웹 애플리케이션에 대한 양식 유효성 검사를 구현하는 방법 Jun 24, 2023 am 09:08 AM

양식 유효성 검사는 웹 애플리케이션 개발에서 매우 중요한 링크로, 애플리케이션의 보안 취약성과 데이터 오류를 방지하기 위해 양식 데이터를 제출하기 전에 데이터의 유효성을 확인할 수 있습니다. Golang을 사용하여 웹 애플리케이션에 대한 양식 유효성 검사를 쉽게 구현할 수 있습니다. 이 기사에서는 Golang을 사용하여 웹 애플리케이션에 대한 양식 유효성 검사를 구현하는 방법을 소개합니다. 1. 폼 유효성 검사의 기본 요소 폼 유효성 검사를 구현하는 방법을 소개하기 전에 먼저 폼 유효성 검사의 기본 요소가 무엇인지 알아야 합니다. 양식 요소: 양식 요소는

Laravel에서 미들웨어를 사용하여 양식 유효성 검사를 처리하는 방법 Laravel에서 미들웨어를 사용하여 양식 유효성 검사를 처리하는 방법 Nov 02, 2023 pm 03:57 PM

Laravel에서 미들웨어를 사용하여 양식 유효성 검사를 처리하는 방법에는 특정 코드 예제가 필요합니다. 소개: Laravel에서 양식 유효성 검사는 매우 일반적인 작업입니다. 사용자가 입력한 데이터의 유효성과 보안을 보장하기 위해 당사는 일반적으로 양식에 제출된 데이터를 확인합니다. Laravel은 편리한 양식 유효성 검사 기능을 제공하며 양식 유효성 검사를 처리하기 위한 미들웨어 사용도 지원합니다. 이 글에서는 미들웨어를 사용하여 Laravel에서 양식 유효성 검사를 처리하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다.

PHP 양식 유효성 검사 팁: filter_input 함수를 사용하여 사용자 입력을 확인하는 방법 PHP 양식 유효성 검사 팁: filter_input 함수를 사용하여 사용자 입력을 확인하는 방법 Aug 01, 2023 am 08:51 AM

PHP 양식 유효성 검사 팁: filter_input 함수를 사용하여 사용자 입력을 확인하는 방법 소개: 웹 애플리케이션을 개발할 때 양식은 사용자와 상호 작용하는 중요한 도구입니다. 사용자 입력의 유효성을 올바르게 검사하는 것은 데이터 무결성과 보안을 보장하는 주요 단계 중 하나입니다. PHP는 사용자 입력을 쉽게 확인하고 필터링할 수 있는 filter_input 함수를 제공합니다. 이 글에서는 filter_input 함수를 사용하여 사용자 입력을 확인하고 관련 코드 예제를 제공하는 방법을 소개합니다. 하나,

PHP의 양식 유효성 검사 및 필터링 방법? PHP의 양식 유효성 검사 및 필터링 방법? Jun 29, 2023 pm 10:04 PM

PHP는 웹 개발에 널리 사용되는 스크립팅 언어이며, 양식 유효성 검사 및 필터링은 매우 중요한 부분입니다. 사용자가 양식을 제출하면 데이터의 보안과 유효성을 보장하기 위해 사용자가 입력한 데이터를 확인하고 필터링해야 합니다. 이 기사에서는 PHP에서 양식 유효성 검사 및 필터링을 수행하는 방법에 대한 방법과 기술을 소개합니다. 1. 양식 유효성 검사 양식 유효성 검사는 사용자가 입력한 데이터를 확인하여 데이터가 특정 규칙 및 요구 사항을 준수하는지 확인하는 것을 의미합니다. 일반적인 양식 확인에는 필수 필드, 이메일 형식, 휴대폰 번호 형식에 대한 확인이 포함됩니다.

입문부터 숙달까지, 2022년 최신 5개 Anglejs 튜토리얼 입문부터 숙달까지, 2022년 최신 5개 Anglejs 튜토리얼 Jun 15, 2017 pm 05:50 PM

자바스크립트는 코드의 구성, 코드의 프로그래밍 패러다임, 객체지향 이론 측면에서 매우 독특한 언어입니다. 하지만 20년 동안 Javascript가 지배했음에도 불구하고 jQuery, Angularjs, 심지어 React와 같은 인기 프레임워크를 이해하려면 "Black Horse Cloud Classroom JavaScript Advanced Framework"를 시청하세요. 디자인 비디오 튜토리얼'을 참조하세요.

See all articles