编程语言
首页 > 编程语言> > javascript-Angular 5仅对模糊进行验证?

javascript-Angular 5仅对模糊进行验证?

作者:互联网

我想知道是否有可能以模糊的反应形式进行验证.目前,您可以设置updateOn:“ blur”,但是输入字段的值不会在输入时更新.在我的情况下,我需要在每次击键时更新值,因为我会用它进行计算并将结果显示给用户.验证应仅在模糊时进行.

谢谢.

编辑:

我使用FormBuilder,一些内置的验证器和一些自定义的验证器.示例代码:

let formToMake = {
  purpose: [null, Validators.required],
  registrationDate: this.fb.group({
    day: [null, Validators.required],
    month: [null, Validators.required],
    year: [null, Validators.required]
  }),
  isTruth: [null, Validators.compose([checkIfTrue, Validators.required])]
};

如果我要使用模糊事件,则需要手动进行所有验证,但我认为这不是一个好方法.

解决方法:

我最终做了什么:

使用反应形式:

TS

这是表格.我需要productCost和loanAmount在模糊时进行验证,但值本身需要在onchange时更新.如果设置updateOn:“ blur”,则验证将在模糊事件之后进行,但是als值将在模糊事件之后进行更新.

let formToMake = {
      productCost: new FormControl(null, {validators: Validators.required, updateOn: "blur"}),
      loanAmount: new FormControl(null, {validators: Validators.compose([Validators.required, Validators.min(2500)]), updateOn: "blur"}),
      loanLength: new FormControl(49, {validators: Validators.required, updateOn: "change"})
    };

handleInput方法:

为了解决这个问题,我只做了一个事件处理程序,它将在输入事件上调用.

TS

handleInput(e: any) {
    this.loanAmount = e;
  }

的HTML

<input class="form__input" type="number" value="{{loanForm.get('loanAmount').value}}" id="loanAmount" formControlName="loanAmount" (input)="handleInput($event.target.value)">

标签:angular,angular5,javascript
来源: https://codeday.me/bug/20191025/1926845.html