日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

angular4響應(yīng)式表單與校驗(yàn)實(shí)現(xiàn)demo

瀏覽:420日期:2022-06-10 09:34:41
目錄
  • html文件:
  • ts文件:
  • 校驗(yàn)文件validators.ts

html文件:

<form [formGroup]="formModel" (submit)="onSubmit()">
  <h2>響應(yīng)式表單與校驗(yàn)</h2>
  <div><label>用戶名:</label><input  type="text" formControlName="username"/></div>
  <div [hidden]="!formModel.hasError("required","username")">用戶名是必填項(xiàng)</div>
  <!-- required不是校驗(yàn)器的名字,而是失敗后返回的對象里的key值 
  * 只要是required有值就認(rèn)為是錯(cuò)誤的,不論是什么值true或者是對象
  * username是想要檢查的字段名字
  -->
  <div [hidden]="!formModel.hasError("minlength","username")">用戶名的最小長度是6</div>
  <div><label>手機(jī)號:</label><input  type="text" formControlName="mobile"/></div>
  <div [hidden]="!formModel.hasError("mobile","mobile")">手機(jī)號不合法</div>
  <div formGroupName="passwordsGroup">
    <div><label>密碼:</label><input  type="password" formControlName="password"/></div>
    <div [hidden]="!formModel.hasError("minlength",["passwordsGroup","password"])">密碼的最小長度是6</div>
    <!-- 這里注意想要校驗(yàn)的字段的寫法是一個(gè)數(shù)組 -->
    <div><label>確認(rèn)密碼:</label><input  type="password" formControlName="pwconfrim"/></div>
    <div [hidden]="!formModel.hasError("equal","passwordsGroup")">
      {{formModel.getError("equal","passwordsGroup")?.descx}}
       <!-- 可以在校驗(yàn)器中的key值中定義提示語 -->
    </div>
  </div>
  <button type="submit">注冊</button>
</form>
<div>
  {{formModel.status}}
</div>

ts文件:

import { Component,OnInit } from "@angular/core";
import { FormGroup,FormControl,FormBuilder,AbstractControl,Validators } from "@angular/forms";
import { validators } from "./validator/validators";
@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent implements OnInit{
  //校驗(yàn)器就是一個(gè)普通的方法,名字隨意定,接收一個(gè)參數(shù),參數(shù)的類型必須是AbstractControl的類型,必須有返回值,返回值的//可以是任意結(jié)果的一個(gè)對象,對象要求key必須是string類型的,值可以是任意類型的
  // xxxx(control:AbstractControl):{[key:string]:any} {
  //   return null;
  // }
  //校驗(yàn)器可以單獨(dú)的提取出去,寫在validators.ts文件中
  public val:validators;//定義一個(gè)validators類型的變量 val
  formModel: FormGroup;
  // constructor(){
  //     this.formModel = new FormGroup({
  //       username: new FormControl(),
  //       moblie: new FormControl(),
  //       passwordsGroup: new FormGroup({
  // password: new FormControl(),
  // pwconfrim: new FormControl()
  //       })
  //     });
  // }
  //同上的功能
  //FormBuilder的group方法可以再接收一個(gè)額外的方法來做校驗(yàn),用“,”分開
  //["",,]第一個(gè)元素是一個(gè)初始值,第二個(gè)元素是一個(gè)校驗(yàn)方法,第三個(gè)元素是異步校驗(yàn)方法
  constructor(fb:FormBuilder){
    this.val = new validators();
    this.formModel =fb.group({
      username: ["",[Validators.required,Validators.minLength(6)]],//[""]實(shí)例化了一個(gè)FormControl,Validators內(nèi)置表單校驗(yàn)都存儲在這里
      mobile: ["",this.val.mobileValidator,this.val.mobileAsyncValidator],
      passwordsGroup: fb.group({
password:  ["",Validators.minLength(6)],
pwconfrim:  [""]
      },{validator :this.val.euqalValidator})
    });
}
  onSubmit() { 
    // let isValid: boolean = this.formModel.get("username").valid;
    //符合所有校驗(yàn)規(guī)則后,isValid就是true;
    // console.log("username的校驗(yàn)結(jié)果是"+isValid);
    // let errors:any = this.formModel.get("username").errors;
    // console.log("username的錯(cuò)誤信息是"+JSON.stringify(errors))
    if(this.formModel.valid){ //所有表單都合法才打印表單的值
      console.log(this.formModel.value);
    }
  }
  ngOnInit() {
  }
}

校驗(yàn)文件validators.ts

import { FormControl,FormGroup } from "@angular/forms";
import { Observable } from "rxjs";
export class validators{
? ? mobileValidator(control:FormControl):any {
? ? ? ? let myReg = /^1(3|4|5|7|8)+\d{9}$/;
? ? ? ? let valid = myReg.test(control.value);
? ? ? ? console.log("moblie的校驗(yàn)結(jié)果是"+valid)
? ? ? ? return valid ? null : {mobile:true};//如果valid是true 返回是null
? ? ? }
? ? //異步校驗(yàn)器,返回的不是對象,而是一個(gè)異步校驗(yàn)流
? ? mobileAsyncValidator(control:FormControl):any {
? ? ? ? let myReg = /^1(3|4|5|7|8)+\d{9}$/;
? ? ? ? let valid = myReg.test(control.value);
? ? ? ? console.log("moblie的校驗(yàn)結(jié)果是"+valid)
? ? ? ? return Observable.of(
? ? ? ? ? ? valid ? null : {mobile:true}
? ? ? ? ).delay(5000)//延遲5秒 ?
? ? ? }
? ? ? euqalValidator(group:FormGroup):any {
? ? ? ? let password :FormControl = group.get("password") as FormControl;
? ? ? ? let pwconfrim :FormControl = group.get("pwconfrim") as FormControl;
? ? ? ? let valid :boolean = (password.value === pwconfrim.value);
? ? ? ? console.log("密碼校驗(yàn)結(jié)果是"+valid);
? ? ? ? return valid ? null : {equal:{descx:"密碼和確認(rèn)密碼不匹配"}};
? ? ? }
}

以上就是angular4響應(yīng)式表單與校驗(yàn)實(shí)現(xiàn)demo的詳細(xì)內(nèi)容,更多關(guān)于angular4響應(yīng)式表單校驗(yàn)的資料請關(guān)注其它相關(guān)文章!

標(biāo)簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99热精品久久| 国产高清一区| 中文字幕日韩亚洲| 蜜桃久久av一区| 日韩精品免费视频人成| 国产日韩欧美中文在线| 国产精品一区二区三区www| 美女视频黄 久久| 精品捆绑调教一区二区三区| 99亚洲视频| 91在线成人| 在线人成日本视频| 免费视频久久| 国产精品分类| 日韩精品不卡一区二区| 黄色欧美日韩| 欧美日韩18| 欧美xxxx中国| 伊人精品在线| 国产精品一区二区免费福利视频| 中文字幕在线视频网站| 在线视频精品| 国产精品mv在线观看| 久久精品欧美一区| 亚洲日本在线观看视频| 福利视频一区| 久久最新视频| 成人国产精品一区二区免费麻豆| 一本色道精品久久一区二区三区| 日本在线不卡视频一二三区| 捆绑调教美女网站视频一区| 精品中文一区| 日韩国产欧美三级| 亚洲天堂1区| 日本不卡在线视频| 国产中文在线播放| 亚洲人成在线影院| 日韩精品诱惑一区?区三区| 亚洲天堂日韩在线| 高潮一区二区| 亚洲精品无播放器在线播放| 色在线视频观看| 日韩国产在线不卡视频| 精精国产xxxx视频在线野外| 日韩极品在线观看| 国产在线不卡| 红杏一区二区三区| 亚洲在线国产日韩欧美| 久久精品天堂| 每日更新成人在线视频| 国产精品精品国产一区二区| 亚洲乱码一区| 欧美中文字幕一区二区| 麻豆91精品91久久久的内涵| 免费日韩av| 国产 日韩 欧美一区| 国产日韩在线观看视频| 久久午夜视频| 国产综合精品| 精品一区二区三区的国产在线观看 | 激情欧美亚洲| 欧美激情视频一区二区三区在线播放| 亚洲欧洲一区二区天堂久久| 成人午夜在线| 国产欧美综合一区二区三区| 蜜臀av在线播放一区二区三区| 91精品精品| 亚洲精品**中文毛片| 久久99精品久久久野外观看| 视频一区中文字幕精品| 国产视频亚洲| 一级欧洲+日本+国产| 91av亚洲| 精品免费av一区二区三区| 91亚洲精品在看在线观看高清| 亚洲夜间福利| 欧洲一区二区三区精品| 欧美成a人片免费观看久久五月天| 亚洲免费成人av在线| 日韩精品一二区| 制服诱惑一区二区| 午夜影院欧美| 欧美在线网站| av一区二区高清| 久久人人99| 欧美福利一区| 免费av一区| 亚洲欧洲一区二区天堂久久| 婷婷综合网站| 日韩一区二区免费看| 99热免费精品| 国产综合亚洲精品一区二| 久久精品国产68国产精品亚洲| 久久男女视频| 999精品色在线播放| 国产综合激情| 欧美日韩精品免费观看视频完整| 国产韩日影视精品| 亚洲精品1区| 在线看片日韩| 日韩福利在线观看| 国产精品久久久久久模特| 国产免费av国片精品草莓男男| 国产欧美三级| 精品国产一区二区三区av片| 国产第一亚洲| 亚洲永久av| 久久国产欧美| 久久高清国产| 欧美一区网站| 成人精品动漫一区二区三区| 精精国产xxxx视频在线野外| 亚州av乱码久久精品蜜桃| 蜜桃伊人久久| 国产亚洲精品美女久久久久久久久久| 久久久久97| 亚洲天堂黄色| 日日夜夜免费精品视频| 美女av一区| 日韩欧美精品综合| 亚洲欧美日韩高清在线| 91成人超碰| 日韩欧美中文字幕电影| 精品国产一区二| 免费不卡中文字幕在线| 在线看片日韩| 精品免费av| 亚洲精品中文字幕乱码| 日韩激情啪啪| 91亚洲国产| 丝袜美腿高跟呻吟高潮一区| 久久精品 人人爱| 欧美精品高清| 蜜臀av在线播放一区二区三区| 91综合久久爱com| 国产资源在线观看入口av| 亚洲午夜电影| 国产欧美欧美| 午夜日韩在线| 国产极品一区| av不卡在线| 麻豆久久久久久| 好看的av在线不卡观看| 国产精品天堂蜜av在线播放| 久久久久久免费视频| 日本va欧美va精品| 久久精品亚洲人成影院| 日韩高清在线不卡| 亚洲深夜视频| 日韩高清一区在线| 欧美日韩国产高清电影| 欧美日韩一区二区三区不卡视频| 9999国产精品| 日韩高清成人在线| 欧美69视频| 久久中文在线| 日韩欧美美女在线观看| 天堂资源在线亚洲| 国产精品扒开腿做爽爽爽软件| 一区在线免费观看| 日韩av有码| 久久激情综合网| 丝袜亚洲精品中文字幕一区| 另类中文字幕国产精品| 国产精品网址| 视频一区二区中文字幕| 久久精品天堂| 天堂久久av| 亚洲国产一区二区三区在线播放| 精品日本视频| 欧美日韩1区2区3区| 久久亚洲美女| 欧美日韩国产传媒| 亚洲播播91| 福利一区和二区| 国产精品99久久免费| 日日夜夜免费精品| 99亚洲视频| 91精品精品| 日韩精品电影| av免费不卡国产观看| 国产伦乱精品| 日本色综合中文字幕| 视频一区二区中文字幕| 欧美 日韩 国产一区二区在线视频 | 日韩高清在线观看一区二区| 国产精品婷婷| 伊人成人网在线看| 婷婷六月综合| 99热精品久久| 亚洲精品.com| 视频二区不卡| 国产欧洲在线| 久久久久黄色| 麻豆精品久久久| 欧美91在线| 国产精品videosex极品| 国产伦理一区| 国产精品qvod| 久久亚洲国产精品尤物|