簡體   English   中英

“可選字段” Angular 2反應形式的自定義驗證器

[英]Custom validator for “Optional Field” Angular 2 Reactive forms

我為“可選”字段編寫了一個自定義驗證器,邏輯和驗證與相應的值配合良好。 但是,一旦單擊文本字段並且它不提供值,它將顯示為必填字段。 如果有人知道,請幫幫我。

這是我的自定義驗證器類。 在這里我的文本字段值將像'123s,wd345,23'和range(2,12)

custom-validator.ts

 import { AbstractControl, ValidatorFn } from '@angular/forms'; export class OrderUnitValidators { static range(min: number, max: number): ValidatorFn { return (c: AbstractControl): { [key: string]: boolean } | null => { if(c && (c.value !==null || c.value !== undefined)){ const str=c.value; const valArr=str.split(','); for(let val in valArr){ if(valArr[val].length<2 || valArr[val].length>12){ return { 'range' : true }; } } } return null; }; } } 

正如Florian所說,您犯了一個小錯誤,我已經測試了您的代碼,它對我來說是完美的。 但是請確保在FormGroup中應該初始化空字符串。

 export class OrderUnitValidators { static range(min: number, max: number): ValidatorFn { return (c: AbstractControl): { [key: string]: boolean } | null => { if(c && (c.value !== '')){ const str=c.value; const valArr=str.split(','); for(let val in valArr){ if(valArr[val].length<2 || valArr[val].length>12){ return { 'range' : true }; } } } return null; }; } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM