如何以反应形式管理文本字段以在“ Angular 2”中进行验证?

时间:2018-07-31 14:32:39

标签: javascript angular angular-reactive-forms

我使用“角度2”中的“反应形式”开发了一种形式。在这里,我的表单由五个可选字段组成,每个字段都可以采用逗号分隔的值。在这里,我将控制允许使用逗号分隔值的任何两个字段,而其余字段可以采用单个值。如果用户尝试将逗号分隔的值提供给两个以上的字段,则应发送弹出错误消息。

我已经编写了“自定义验证器”来处理逗号分隔的值,但是我不清楚只有两个字段具有逗号分隔的字段。如果您有任何想法,请帮助我。

这是我的自定义验证器方法。

//Custom validator for Unitorder,Orderreference number,Schedule Entry,SAP 
 order number and CPS ID 
  static commaSeparatedFields(min: number, max: number): ValidatorFn {
    return (c: AbstractControl): { [key: string]: boolean } | null => {
  var reg=/[^A-Za-z0-9]+/;
    if(c && (c.value !== '')){
      const str=c.value;
      const valArr=str.split(',');
      let OUNArray=[],OCCArray=[];
      for(let val in valArr){
          if ( valArr[val].length<min || valArr[val].length>max || 
    valArr[val].match(reg) ){
            console.log('Invalid');
          return { 
              'commaSeparatedFields' : true
               };
          }else{
            console.log('valid');
          } 
      }
      }
       return null;
     };
    }

0 个答案:

没有答案