- Angular 8 教程
- Angular 8 - 首頁
- Angular 8 - 簡介
- Angular 8 - 安裝
- 建立第一個應用程式
- Angular 8 - 架構
- Angular 元件和模板
- Angular 8 - 資料繫結
- Angular 8 - 指令
- Angular 8 - 管道
- Angular 8 - 響應式程式設計
- 服務和依賴注入
- Angular 8 - Http客戶端程式設計
- Angular 8 - Angular Material
- 路由和導航
- Angular 8 - 動畫
- Angular 8 - 表單
- Angular 8 - 表單驗證
- 身份驗證和授權
- Angular 8 - Web Workers
- Service Workers 和 PWA
- Angular 8 - 伺服器端渲染
- Angular 8 - 國際化 (i18n)
- Angular 8 - 可訪問性
- Angular 8 - CLI 命令
- Angular 8 - 測試
- Angular 8 - Ivy 編譯器
- Angular 8 - 使用 Bazel 構建
- Angular 8 - 向後相容性
- Angular 8 - 工作示例
- Angular 9 - 新特性?
- Angular 8 有用資源
- Angular 8 - 快速指南
- Angular 8 - 有用資源
- Angular 8 - 討論
Angular 8 - 表單驗證
表單驗證是 Web 應用程式的重要組成部分。它用於驗證使用者輸入是否格式正確。
RequiredValidator (必填驗證器)
讓我們在 Angular 中執行簡單的必填欄位驗證。
開啟命令提示符並進入 **reactive-form-app** 目錄。
cd /go/to/reactive-form-app
替換 **test.component.ts** 檔案中的以下程式碼。
import { Component, OnInit } from '@angular/core';
//import validator and FormBuilder
import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
//Create FormGroup
requiredForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm();
}
//Create required field validator for name
myForm() {
this.requiredForm = this.fb.group({
name: ['', Validators.required ]
});
}
ngOnInit()
{
}
}
這裡:
我們使用表單構建器來處理所有驗證。建構函式用於建立一個帶有驗證規則的表單。
在 **test.component.html** 檔案中新增以下程式碼。
<div>
<h2>
Required Field validation
</h2>
<form [formGroup]="requiredForm" novalidate>
<div class="form-group">
<label class="center-block">Name:
<input class="form-control" formControlName="name">
</label>
</div>
<div *ngIf="requiredForm.controls['name'].invalid && requiredForm.controls['name'].touched" class="alert alert-danger">
<div *ngIf="requiredForm.controls['name'].errors.required">
Name is required.
</div>
</div>
</form>
<p>Form value: {{ requiredForm.value | json }}</p>
<p>Form status: {{ requiredForm.status | json }}</p>
</div>
這裡:
**requiredForm** 是全域性表單組物件,它是父元素。表單控制元件是 requiredForm 的子元素。
條件語句用於檢查,如果使用者已觸碰輸入欄位但未輸入值,則顯示錯誤訊息。
最後,使用以下命令啟動您的應用程式(如果尚未啟動):
ng serve
現在執行您的應用程式並將焦點放在文字框上。然後,它將顯示“Name is required”(名稱必填)的訊息,如下所示:
如果您在文字框中輸入文字,則會進行驗證,並顯示以下輸出:
PatternValidator (模式驗證器)
**PatternValidator** 用於驗證正則表示式模式。讓我們執行簡單的電子郵件驗證。
開啟命令提示符並進入 **reactive-form-app** 目錄。
cd /go/to/reactive-form-app
替換 test.component.ts 檔案中的以下程式碼:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder } from
'@angular/forms';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent implements OnInit {
requiredForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm();
}
myForm() {
this.requiredForm = this.fb.group({
email: ['', [Validators.required,
Validators.pattern("^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$")] ]
});
}
ngOnInit()
{
}
}
這裡:
在 Validator 中添加了電子郵件模式驗證器。
更新 test.component.html 檔案中的以下程式碼:
<div>
<h2>
Pattern validation
</h2>
<form [formGroup]="requiredForm" novalidate>
<div class="form-group">
<label class="center-block">Email:
<input class="form-control" formControlName="email">
</label>
</div>
<div *ngIf="requiredForm.controls['email'].invalid && requiredForm.controls['email'].touched" class="alert alert-danger">
<div *ngIf="requiredForm.controls['email'].errors.required">
Email is required.
</div>
</div>
</form>
<p>Form value: {{ requiredForm.value | json }}</p>
<p>Form status: {{ requiredForm.status | json }}</p>
</div>
在這裡,我們建立了電子郵件控制元件並呼叫了電子郵件驗證器。
執行您的應用程式,您將看到以下結果:
同樣,您可以嘗試自己執行其他型別的驗證器。
廣告