angular8表单校验:小数校验(指定小数位数、指定最大数、指定最小数)

在线示例:https://zhtt.gitee.io/angular-demo/great-ngform8/#/form/decimal

参考地址:https://www.npmjs.com/package/great-ngform

<div class="great-form-group">
    <label>任意数字:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal" class="input"><span>默认可以输入任意数字</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal').dirty && form.get('decimal').errors">只能输入数字!</div>
    </div>
  </div>
  <div class="great-form-group">
    <label>必须2位小数:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal1" class="input"><span>指定输入的小数位数</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal1').dirty && form.get('decimal1').errors">必须2位小数!</div>
    </div>
  </div>
  <div class="great-form-group">
    <label>至多2位小数:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal2" class="input"><span>指定最多可以输入的小数位数</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal2').dirty && form.get('decimal2').errors">至多2位小数!</div>
    </div>
  </div>
  <div class="great-form-group">
    <label>至少2位小数:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal3" class="input"><span>指定最少输入的小数位数</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal3').dirty && form.get('decimal3').errors">至少2位小数!</div>
    </div>
  </div>
  <div class="great-form-group">
    <label>2-3位小数:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal4" class="input"><span>指定可以输入的小数位数范围</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal4').dirty && form.get('decimal4').errors">必须2-3位小数!</div>
    </div>
  </div>
  <div class="great-form-group">
    <label>1-100:</label>
    <div class="great-input">
      <input type="text" formControlName="decimal5" class="input"><span>指定可以数字的数字范围</span>
      <div class="great-form-error-text" *ngIf="form.get('decimal5').dirty && form.get('decimal5').errors">只能输入1-100之间的数字!</div>
    </div>
  </div>
  <div>
    <div class="great-form-group">
      <label>数字与小数范围:</label>
      <div class="great-input">
        <input type="text" formControlName="decimal6" class="input"><span>指定可以输入的数字范围、小数位数范围</span>
        <div class="great-form-error-text" *ngIf="form.get('decimal6').dirty && form.get('decimal6').errors">必须2-3位小数,且在1-100之间的数字!</div>
      </div>
    </div>
  </div>
  <div>
    <div class="great-form-group">
      <label>大于等于100:</label>
      <div class="great-input">
        <input type="text" formControlName="decimal7" class="input">
        <div class="great-form-error-text" *ngIf="form.get('decimal7').dirty && form.get('decimal7').errors">必须大于等于100!</div>
      </div>
    </div>
  </div>
  <div>
    <div class="great-form-group">
      <label>小于等于100:</label>
      <div class="great-input">
        <input type="text" formControlName="decimal8" class="input">
        <div class="great-form-error-text" *ngIf="form.get('decimal8').dirty && form.get('decimal8').errors">必须小于等于100!</div>
      </div>
    </div>
  </div>
  <div>
    <div class="great-form-group">
      <label>大于100:</label>
      <div class="great-input">
        <input type="text" formControlName="decimal9" class="input">
        <div class="great-form-error-text" *ngIf="form.get('decimal9').dirty && form.get('decimal9').errors">必须小于100!</div>
      </div>
    </div>
  </div>
  <div>
    <div class="great-form-group">
      <label>小于100:</label>
      <div class="great-input">
        <input type="text" formControlName="decimal10" class="input">
        <div class="great-form-error-text" *ngIf="form.get('decimal10').dirty && form.get('decimal10').errors">必须大于100!</div>
      </div>
    </div>
  </div>

 

ngOnInit() {
    this.form = this.fb.group({
      decimal: new FormControl(null, [
        this.formValidatorService.decimal()
      ]),
      // 必须2位小数校验
      decimal1: [null, [this.formValidatorService.decimal({scale: 2})]],
      // 最多2位小数校验
      decimal2: [null, [this.formValidatorService.decimal({maxScale: 2})]],
      // 最少2位小数校验
      decimal3: [null, [this.formValidatorService.decimal({minScale: 2})]],
      // 必须2-3位小数
      decimal4: [null, [this.formValidatorService.decimal({minScale: 2, maxScale: 3})]],
      // 只能输入1-100之间的数字
      decimal5: [null, [this.formValidatorService.decimal({min: 1, max: 100})]],
      // 必须2-3位小数,且在1-100之间的数字
      decimal6: [null, [this.formValidatorService.decimal({minScale: 2, maxScale: 3, min: 1, max: 100})]],
      decimal7: [null, [this.formValidatorService.decimal({min: 100})]],
      decimal8: [null, [this.formValidatorService.decimal({max: 100})]],
      decimal9: [null, [this.formValidatorService.decimal({greaterThan: 100})]],
      decimal10: [null, [this.formValidatorService.decimal({lessThan: 100})]],
    });
  }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Angular 表单提交校验控制案例: HTML 代码: ``` <form (ngSubmit)="onSubmit()" #myForm="ngForm"> <div class="form-group"> <label for="name">Name:</label> <input type="text" class="form-control" id="name" name="name" [(ngModel)]="name" required minlength="3"> <div *ngIf="myForm.submitted && myForm.controls.name.errors" class="text-danger"> <div *ngIf="myForm.controls.name.errors.required"> Name is required. </div> <div *ngIf="myForm.controls.name.errors.minlength"> Name must be at least 3 characters long. </div> </div> </div> <div class="form-group"> <label for="email">Email:</label> <input type="email" class="form-control" id="email" name="email" [(ngModel)]="email" required email> <div *ngIf="myForm.submitted && myForm.controls.email.errors" class="text-danger"> <div *ngIf="myForm.controls.email.errors.required"> Email is required. </div> <div *ngIf="myForm.controls.email.errors.email"> Invalid email format. </div> </div> </div> <button type="submit" class="btn btn-primary" [disabled]="!myForm.valid">Submit</button> </form> ``` 在上面的代码中,我们定义了一个表单,其中包含两个输入框:一个用于输入名称,另一个用于输入电子邮件地址。我们使用了 `ngModel` 指令来绑定输入框的值到组件中的属性,使用 `required` 和 `minlength` 校验器来验证名称输入框是否符合要求,使用 `required` 和 `email` 校验器来验证电子邮件输入框是否符合要求。 在每个输入框下面,我们使用了一个 `*ngIf` 结构来显示校验错误信息。如果表单已经提交且存在相应的错误,则显示相应的错误信息。 最后,我们在提交按钮上使用了一个 `[disabled]` 属性来禁用按钮,以防止用户在表单无效时提交表单。 TypeScript 代码: ``` import { Component } from '@angular/core'; import { NgForm } from '@angular/forms'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.css'] }) export class FormComponent { name: string; email: string; onSubmit() { console.log('Form submitted'); } } ``` 在组件中,我们定义了 `name` 和 `email` 两个属性来存储输入框的值。在 `onSubmit` 方法中,我们只是简单地打印一条消息,表示表单已经提交。 注意,我们使用了 `NgForm` 类型来注入表单对象,以便在模板中使用表单的各种属性和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值