最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular8 簡單表單驗證的實現(xiàn)示例

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

簡單表單校驗

傻瓜式校驗

直接復(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]
  });
 }

此類表單校驗較為單一,或者要求比較低,通常即為required校驗,錯誤信息提示也多為固定不變。

智能化校驗

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

<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)建出一個數(shù)據(jù)對象,以滿足不同字段下不同錯誤類型的錯誤提示,根據(jù)業(yè)務(wù)需求,決定是否顯示全部錯誤信息或者按照業(yè)務(wù)優(yōu)先級顯示。

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

表單校驗時機可以設(shè)置,默認(rèn)為change,可選blur 、submit

表單驗證正確的,想要提示勾號可以添加屬性 nzHasFeedback


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

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

相關(guān)文章

  • AngularJS基礎(chǔ) ng-src 指令簡單示例

    AngularJS基礎(chǔ) ng-src 指令簡單示例

    本文主要介紹AngularJS ng-src 指令,這里對ng-src 指令的資料做了詳細(xì)整理,有需要的小伙伴可以參考下
    2016-08-08
  • Angular短信模板校驗代碼

    Angular短信模板校驗代碼

    這篇文章主要介紹了Angular短信模板校驗代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • angularJS實現(xiàn)表格部分列展開縮起示例代碼

    angularJS實現(xiàn)表格部分列展開縮起示例代碼

    這篇文章主要介紹了angularJS實現(xiàn)表格部分列展開縮起示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Angular.JS去掉訪問路徑URL中的#號詳解

    Angular.JS去掉訪問路徑URL中的#號詳解

    最近天天都在用AngularJS,各類文檔也都看過好幾遍,但總是些編程上的事找不到優(yōu)雅的解決辦法。今天終于把AngularJS的項目訪問路徑URL里的#號去掉了,這個問題不見得有多難,關(guān)鍵是花多長時間去理解AngularJS框架本身,下面來看看詳細(xì)介紹,需要的朋友可以參考下。
    2017-03-03
  • 詳解AngularJS中的表單驗證(推薦)

    詳解AngularJS中的表單驗證(推薦)

    AngularJS自帶了很多驗證,什么必填,最大長度,最小長度...,這里記錄幾個有用的正則式驗證。本文給大家介紹的非常詳細(xì),對angularjs中表單驗證知識感興趣的朋友一起學(xué)習(xí)吧
    2016-11-11
  • Angular中的Promise對象($q介紹)

    Angular中的Promise對象($q介紹)

    這篇文章主要介紹了Angular中的Promise對象($q介紹),本文講解了Promise模式、Q Promise的基本用法、AngularJs中的$q.defferd等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • AngularJS用戶選擇器指令實例分析

    AngularJS用戶選擇器指令實例分析

    這篇文章主要介紹了AngularJS用戶選擇器指令,結(jié)合實例形式分析了angular指令實現(xiàn)選擇器功能的具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2016-11-11
  • AngularJS ionic手勢事件的使用總結(jié)

    AngularJS ionic手勢事件的使用總結(jié)

    本篇文章主要介紹了AngularJS手勢事件的使用總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • AngularJS入門教程之Hello World!

    AngularJS入門教程之Hello World!

    這篇文章主要介紹了AngularJS入門教程之Hello World!,本文用經(jīng)典的應(yīng)用程序“Hello World!”來講解AngularJS,要的朋友可以參考下
    2014-12-12
  • Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法

    Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法

    這篇文章主要介紹了Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法,涉及AngularJS針對重復(fù)數(shù)據(jù)的遍歷與過濾技巧,需要的朋友可以參考下
    2016-08-08

最新評論

武宁县| 吴川市| 句容市| 都江堰市| 天峻县| 太湖县| 固原市| 阳泉市| 西青区| 许昌县| 应城市| 三门峡市| 丹凤县| 漳州市| 仁布县| 永泰县| 阜新市| 盐边县| 万盛区| 枞阳县| 阿荣旗| 宜昌市| 贵州省| 贵定县| 涞源县| 桦甸市| 聊城市| 张北县| 工布江达县| 商河县| 阳信县| 双峰县| 海盐县| 东乡族自治县| 陕西省| 九台市| 通州区| 宿松县| 东光县| 遂平县| 万安县|