成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

angular4響應式表單與校驗實現demo

瀏覽:369日期:2022-06-10 09:34:41
目錄
  • html文件:
  • ts文件:
  • 校驗文件validators.ts

html文件:

<form [formGroup]="formModel" (submit)="onSubmit()">
  <h2>響應式表單與校驗</h2>
  <div><label>用戶名:</label><input  type="text" formControlName="username"/></div>
  <div [hidden]="!formModel.hasError("required","username")">用戶名是必填項</div>
  <!-- required不是校驗器的名字,而是失敗后返回的對象里的key值 
  * 只要是required有值就認為是錯誤的,不論是什么值true或者是對象
  * username是想要檢查的字段名字
  -->
  <div [hidden]="!formModel.hasError("minlength","username")">用戶名的最小長度是6</div>
  <div><label>手機號:</label><input  type="text" formControlName="mobile"/></div>
  <div [hidden]="!formModel.hasError("mobile","mobile")">手機號不合法</div>
  <div formGroupName="passwordsGroup">
    <div><label>密碼:</label><input  type="password" formControlName="password"/></div>
    <div [hidden]="!formModel.hasError("minlength",["passwordsGroup","password"])">密碼的最小長度是6</div>
    <!-- 這里注意想要校驗的字段的寫法是一個數組 -->
    <div><label>確認密碼:</label><input  type="password" formControlName="pwconfrim"/></div>
    <div [hidden]="!formModel.hasError("equal","passwordsGroup")">
      {{formModel.getError("equal","passwordsGroup")?.descx}}
       <!-- 可以在校驗器中的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{
  //校驗器就是一個普通的方法,名字隨意定,接收一個參數,參數的類型必須是AbstractControl的類型,必須有返回值,返回值的//可以是任意結果的一個對象,對象要求key必須是string類型的,值可以是任意類型的
  // xxxx(control:AbstractControl):{[key:string]:any} {
  //   return null;
  // }
  //校驗器可以單獨的提取出去,寫在validators.ts文件中
  public val:validators;//定義一個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方法可以再接收一個額外的方法來做校驗,用“,”分開
  //["",,]第一個元素是一個初始值,第二個元素是一個校驗方法,第三個元素是異步校驗方法
  constructor(fb:FormBuilder){
    this.val = new validators();
    this.formModel =fb.group({
      username: ["",[Validators.required,Validators.minLength(6)]],//[""]實例化了一個FormControl,Validators內置表單校驗都存儲在這里
      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;
    //符合所有校驗規則后,isValid就是true;
    // console.log("username的校驗結果是"+isValid);
    // let errors:any = this.formModel.get("username").errors;
    // console.log("username的錯誤信息是"+JSON.stringify(errors))
    if(this.formModel.valid){ //所有表單都合法才打印表單的值
      console.log(this.formModel.value);
    }
  }
  ngOnInit() {
  }
}

校驗文件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的校驗結果是"+valid)
? ? ? ? return valid ? null : {mobile:true};//如果valid是true 返回是null
? ? ? }
? ? //異步校驗器,返回的不是對象,而是一個異步校驗流
? ? mobileAsyncValidator(control:FormControl):any {
? ? ? ? let myReg = /^1(3|4|5|7|8)+\d{9}$/;
? ? ? ? let valid = myReg.test(control.value);
? ? ? ? console.log("moblie的校驗結果是"+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("密碼校驗結果是"+valid);
? ? ? ? return valid ? null : {equal:{descx:"密碼和確認密碼不匹配"}};
? ? ? }
}

以上就是angular4響應式表單與校驗實現demo的詳細內容,更多關于angular4響應式表單校驗的資料請關注其它相關文章!

標簽: JavaScript
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产伦精品一区二区三区免费迷| 91一区一区三区| 国产精品一区二区在线看| 久久精品91| 亚洲激情成人在线| 在线欧美亚洲| 国产精品国产精品国产专区不片| 欧美高清视频一区二区三区在线观看 | 夜夜夜久久久| 欧美国产亚洲另类动漫| 波多野结衣视频一区| 日韩免费在线观看| 成人午夜短视频| 欧美一区二区三区日韩视频| 国产一区不卡视频| 在线播放亚洲一区| 国产在线国偷精品产拍免费yy| 欧美日韩国产大片| 国产在线视频一区二区三区| 欧美午夜一区二区| 免费成人你懂的| 欧美午夜片在线看| 九九热在线视频观看这里只有精品| 欧美在线视频全部完| 精品一区二区三区在线播放| 欧美色综合天天久久综合精品| 日韩高清欧美激情| 色av成人天堂桃色av| 日韩av电影一区| 欧美午夜精品免费| 国产精品1024| 精品国产成人系列| 欧美精品日本| 成人欧美一区二区三区小说| 国产手机视频一区二区| 亚洲成a人在线观看| 色噜噜狠狠一区二区三区果冻| 精品亚洲成a人| 国产区二精品视| 亚洲一区在线观看免费观看电影高清| 日韩午夜黄色| 亚洲宅男天堂在线观看无病毒| 香蕉久久夜色| 奇米综合一区二区三区精品视频| 在线不卡欧美精品一区二区三区| 成人精品视频网站| 国产精品九色蝌蚪自拍| 999亚洲国产精| 婷婷国产在线综合| 精品视频全国免费看| kk眼镜猥琐国模调教系列一区二区| 国产欧美日本一区二区三区| 亚洲激情婷婷| 午夜日韩在线电影| 欧美日韩另类一区| 不卡的av在线| 国产精品第一页第二页第三页| 国产视频一区三区| 美国十次综合导航| 日韩一级黄色大片| 午夜亚洲福利| 亚洲九九爱视频| 日本韩国欧美一区| 成人中文字幕合集| 最近中文字幕一区二区三区| 欧美中文字幕| 国产91精品精华液一区二区三区 | 九九九久久久精品| 久久亚洲精华国产精华液 | 美女诱惑一区| 国产成人免费在线观看| 日本一区免费视频| 久久精品盗摄| 国产成都精品91一区二区三| 中文字幕一区二区三中文字幕| 久久国产一区| 国产黄色精品视频| 欧美国产一区视频在线观看| 亚洲一区观看| 国产成a人亚洲精| 中文字幕一区二区三区在线观看| 一本久道中文字幕精品亚洲嫩| 国产伦精品一区二区三区视频青涩| 欧美国产国产综合| 欧美综合一区二区| 国产在线精品一区二区中文| 日韩av电影免费观看高清完整版在线观看 | 欧美一卡在线观看| 伊人久久av导航| 久久国产人妖系列| 国产精品久久777777| 欧美探花视频资源| 欧美午夜免费| 久久福利资源站| 国产精品久久久一区麻豆最新章节| 久久精品人人| 94色蜜桃网一区二区三区| 亚洲影院理伦片| 日韩限制级电影在线观看| 一区二区三区欧美在线| 国产成人亚洲综合a∨婷婷| 国产精品久久毛片av大全日韩| 欧美私模裸体表演在线观看| 激情综合网址| 国产乱码精品一区二区三| 综合婷婷亚洲小说| 91精品国产综合久久蜜臀| 国产精品免费看| 成人黄色免费短视频| 亚洲成人动漫一区| 久久精品日产第一区二区三区高清版| 色综合久久天天| 欧美日韩喷水| 国产精品一区二区在线观看不卡 | 国产69精品久久99不卡| 亚洲国产日韩在线一区模特| 欧美一区二视频| 国产视频不卡| 91丨porny丨首页| 青青草97国产精品免费观看| 一色屋精品亚洲香蕉网站| 欧美日产国产精品| 在线综合亚洲| 99免费精品视频| 免费观看一级欧美片| 亚洲欧洲成人自拍| 欧美一区二区三区男人的天堂| 西西裸体人体做爰大胆久久久| 不卡免费追剧大全电视剧网站| 蜜臀久久99精品久久久久久9| 自拍av一区二区三区| 精品免费视频.| 欧美日韩视频第一区| 亚洲一区免费| 激情欧美国产欧美| av成人免费在线观看| 久久97超碰色| 日本最新不卡在线| 一区二区三区成人| 国产精品免费视频一区| 精品少妇一区二区三区视频免付费| 欧亚一区二区三区| 鲁大师影院一区二区三区| 亚洲午夜在线| 91天堂素人约啪| 成人激情开心网| 国产精品综合久久| 日本成人在线网站| 亚洲v精品v日韩v欧美v专区| 亚洲激情自拍偷拍| 国产精品国产自产拍在线| 国产色婷婷亚洲99精品小说| 欧美一区在线视频| 在线成人av影院| 欧美日韩精品欧美日韩精品一综合| 久久裸体视频| 久久精品一区| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美美女网站色| 欧美另类久久久品| 91搞黄在线观看| 久久久久久久久一区二区| 国产精品久久久久9999高清| 亚洲大胆女人| 韩日视频一区| 国产精品久久| 欧美色欧美亚洲另类七区| 91一区二区在线观看| av成人动漫在线观看| 成人sese在线| 99精品视频一区二区| 成人免费观看视频| 成人免费视频视频| 成人免费毛片嘿嘿连载视频| 成人精品国产福利| 不卡av在线免费观看| 粉嫩av亚洲一区二区图片| 国产成人av资源| 国产馆精品极品| 国产成人久久精品77777最新版本| 国产麻豆精品在线| 成人午夜激情在线| 91免费版pro下载短视频| 欧美+亚洲+精品+三区| 91蜜桃传媒精品久久久一区二区| 牛人盗摄一区二区三区视频| 欧美系列一区| 亚洲一本视频| 国产欧美日韩一区| 一本色道久久综合亚洲91| 欧美日韩在线播| 7777精品伊人久久久大香线蕉| 欧美一个色资源| 精品av综合导航| 久久久国产午夜精品| 国产精品国产三级国产aⅴ入口| 亚洲三级免费电影| 亚洲国产成人av| 男女男精品网站| 国产乱人伦精品一区二区在线观看|