欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular8 簡(jiǎn)單表單驗(yàn)證的實(shí)現(xiàn)示例

 更新時(shí)間:2020年06月03日 08:32:25   作者:何棄療  
這篇文章主要介紹了Angular8 簡(jiǎn)單表單驗(yàn)證的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

簡(jiǎn)單表單校驗(yàn)

傻瓜式校驗(yàn)

直接復(fù)制Antd中demo

<form nz-form [nzLayout]="'inline'" [formGroup]="validateForm" (ngSubmit)="submitForm()">
 <nz-form-item>
  <nz-form-control nzErrorTip="Please input your username!">
   <nz-input-group nzPrefixIcon="user">
    <input formControlName="userName" nz-input placeholder="Username" />
   </nz-input-group>
  </nz-form-control>
 </nz-form-item>
 <nz-form-item>
  <nz-form-control nzErrorTip="Please input your Password!">
   <nz-input-group nzPrefixIcon="lock">
    <input formControlName="password" nz-input type="password" placeholder="Password" />
   </nz-input-group>
  </nz-form-control>
 </nz-form-item>
 <nz-form-item>
  <nz-form-control>
   <button nz-button nzType="primary" [disabled]="!validateForm.valid">Log in</button>
  </nz-form-control>
 </nz-form-item>
</form>
validateForm!: FormGroup;

 submitForm(): void {
  for (const i in this.validateForm.controls) {
   this.validateForm.controls[i].markAsDirty();
   this.validateForm.controls[i].updateValueAndValidity();
  }
 }

 constructor(private fb: FormBuilder) {}

 ngOnInit(): void {
  this.validateForm = this.fb.group({
   userName: [null, [Validators.required]],
   password: [null, [Validators.required]],
   remember: [true]
  });
 }

此類(lèi)表單校驗(yàn)較為單一,或者要求比較低,通常即為required校驗(yàn),錯(cuò)誤信息提示也多為固定不變。

智能化校驗(yàn)

表單一旦開(kāi)始有具體的細(xì)節(jié)校驗(yàn)或者復(fù)雜的業(yè)務(wù)參雜,校驗(yàn)提示必須準(zhǔn)確、清晰。
userName為例,除了為必填項(xiàng),必然需要符合某種格式,亦或是指定郵箱格式等,那么校驗(yàn)必須同時(shí)反映出錯(cuò)誤類(lèi)型,本例假設(shè)用戶(hù)名有長(zhǎng)度要求進(jìn)行演示。

<nz-form-control [nzErrorTip]="getErrTipByField('userName')">
   <nz-input-group nzPrefixIcon="user">
    <input formControlName="userName" nz-input placeholder="Username" />
   </nz-input-group>
  </nz-form-control>
export class SimpleFormComponent implements OnInit {
 validateForm: FormGroup;
 errMessageMap = {};

 constructor(
  private fb: FormBuilder
 ) { }

 ngOnInit() {
  this.errMessageMap = {
   userName: {
    required: 'please input your name!',
    minlength: 'please input at least least 5 character'
   },
   password: {
    required: 'please input your password!'
   }
  };
  this.validateForm = this.fb.group({
   userName: [null, [Validators.required, Validators.minLength(5)]],
   password: [null, [Validators.required]],
   remember: [true]
  }, { updateOn: 'change' });
 }
 submitForm(): void {
  if (this.validateForm.controls) {
   for (const i in this.validateForm.controls) {
    if (this.validateForm.controls[i]) {
     this.validateForm.controls[i].markAsDirty();
     this.validateForm.controls[i].updateValueAndValidity();
    }
   }
  }
 }
 getErrTipByField(fieldName) {
  const errors = this.validateForm.get(fieldName).errors;
  let errMsg = '';
  for (const key in errors) {
   if (errors.hasOwnProperty(key)) {
    errMsg += this.errMessageMap[fieldName][key];
   }
  }
  return errMsg;
 }

}

構(gòu)建出一個(gè)數(shù)據(jù)對(duì)象,以滿(mǎn)足不同字段下不同錯(cuò)誤類(lèi)型的錯(cuò)誤提示,根據(jù)業(yè)務(wù)需求,決定是否顯示全部錯(cuò)誤信息或者按照業(yè)務(wù)優(yōu)先級(jí)顯示。

其它細(xì)節(jié)

表單校驗(yàn)時(shí)機(jī)可以設(shè)置,默認(rèn)為change,可選blursubmit

表單驗(yàn)證正確的,想要提示勾號(hào)可以添加屬性 nzHasFeedback


submit中那段代碼是重新對(duì)表單進(jìn)行驗(yàn)證了,一般驗(yàn)證中是不需要的,動(dòng)態(tài)表單驗(yàn)證后續(xù)結(jié)合自定義表單服務(wù)進(jìn)行演示。

到此這篇關(guān)于Angular8 簡(jiǎn)單表單驗(yàn)證的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Angular8 表單驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • AngularJS國(guó)際化詳解及示例代碼

    AngularJS國(guó)際化詳解及示例代碼

    本文主要介紹AngularJS國(guó)際化的知識(shí),這里整理了相關(guān)資料和示例代碼以及實(shí)現(xiàn)效果圖,有興趣的小伙伴可以參考下
    2016-08-08
  • Angular4實(shí)現(xiàn)圖片上傳預(yù)覽路徑不安全的問(wèn)題解決

    Angular4實(shí)現(xiàn)圖片上傳預(yù)覽路徑不安全的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于Angular4實(shí)現(xiàn)圖片上傳預(yù)覽路徑不安全問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • angular.extend方法的具體使用

    angular.extend方法的具體使用

    本篇文章主要介紹了angular.extend方法的具體使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 利用Angular7開(kāi)發(fā)一個(gè)Radio組件的全過(guò)程

    利用Angular7開(kāi)發(fā)一個(gè)Radio組件的全過(guò)程

    這篇文章主要給大家介紹了關(guān)于如何利用Angular7開(kāi)發(fā)一個(gè)Radio組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Angular7具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Angular2的管道Pipe的使用方法

    Angular2的管道Pipe的使用方法

    本篇文章主要介紹了Angular 2的管道Pipe的使用方法,詳細(xì)的介紹了管道的定義和使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-11-11
  • AngularJS表格添加序號(hào)的方法

    AngularJS表格添加序號(hào)的方法

    這篇文章主要介紹了AngularJS表格添加序號(hào)的方法,涉及AngularJS表格的遍歷及序號(hào)添加實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • AngularJS Toaster使用詳解

    AngularJS Toaster使用詳解

    AngularJS Toaster是一個(gè) AngularJS 提示框.基于angular v1.2.6 及以上和angular-animate.這篇文章主要介紹了AngularJS Toaster使用詳解,需要的朋友可以參考下
    2017-02-02
  • angular6?Error:Debug?Failure?at?typeToString解決分析

    angular6?Error:Debug?Failure?at?typeToString解決分析

    這篇文章主要為大家介紹了angular6?Error:Debug?Failure?at?typeToString解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Angular使用Restful的增刪改

    Angular使用Restful的增刪改

    今天小編就為大家分享一篇關(guān)于Angular使用Restful的增刪改,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 詳解如何在Angular優(yōu)雅編寫(xiě)HTTP請(qǐng)求

    詳解如何在Angular優(yōu)雅編寫(xiě)HTTP請(qǐng)求

    這篇文章主要介紹了詳解如何在Angular優(yōu)雅編寫(xiě)HTTP請(qǐng)求,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論