angular 表单验证

本文详细介绍了一个使用Angular框架进行表单验证的实际案例,包括如何设置表单控件、使用正则表达式校验输入、以及如何在用户交互时显示错误信息。通过具体的HTML和TypeScript代码示例,展示了如何创建一个具有Mid和IMEI字段的表单,这两个字段都有各自的验证规则,如必填项检查、最小长度限制和特定的数字模式。

1.html

<form [formGroup]="myGroup1">
    <div class="form-group">
      <label for="name">Mid</label>
      <input id="Mid" class="form-control" formControlName="Mid" required />
      <div *ngIf="Mid.invalid && (Mid.dirty || Mid.touched)" class="alert alert-danger">
        <div *ngIf="Mid.errors.required" class="red">
          Mid 是必填项!
        </div>
        <div *ngIf="Mid.errors.minlength" class="red">
          Mid 必须是十位纯数字!
        </div>
      </div>
    </div>
    <div class="form-group">
      <label for="name">IMEI</label>
      <input id="IMEI" class="form-control" formControlName="IMEI" required />
      <div *ngIf="IMEI.invalid && (IMEI.dirty || IMEI.touched)" class="alert alert-danger">
        <div *ngIf="IMEI.errors.required" class="red">
          IMEI 是必填项!
        </div>
        <div *ngIf="IMEI.errors.minlength || IMEI.errors.pattern " class="red">
          IMEI 必须是15位纯数字!
        </div>
      </div>
    </div>
  </form>

2.初始化表单

Validators.pattern(/1*$/) 使用正则校验

myGroup1: FormGroup;
 this.myGroup1 = new FormGroup({
      Mid: new FormControl(null, [Validators.required, Validators.minLength(10), Validators.maxLength(10)]),
      IMEI: new FormControl(null, [Validators.required, Validators.minLength(15), Validators.maxLength(15),
        Validators.pattern(/^[0-9]*$/)]),  
    });
  1. 不能忘 不然报错
 get Mid() {
    return this.myGroup1.get('Mid');
  }
  get IMEI() {
    return this.myGroup1.get('IMEI');
  }
  1. 提交表单时
    for (const i in this.myGroup1.controls) { this.myGroup1.controls[i].markAsDirty(); this.myGroup1.controls[i].updateValueAndValidity(); }

  1. 0-9 ↩︎

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值