角度2+的自定义输入类型

问题描述 投票:0回答:2

我想到为我的angular 2项目创建自定义输入类型(即)<input type='dob'>的自定义验证。我已经看到了堆栈溢出的Q&A,它有一个解决方案,但不幸的是它是针对角度1。有人可以帮我解决这个问题。

提前致谢

validation angular2-forms angular4-forms angular-forms custom-validators
2个回答
0
投票

创建验证器类和验证的静态方法。

export class CustomValidator{
static nameValidator(control){
   //if valid return true;
  //if invalid return {'errorMsg': 'error desc'};
} 
}

您可以使用如下验证:

formData = formBuilder.group({ customValidationField : [[CustomValidator.nameValidator]]  })

谢谢


0
投票

您可以在角度中使用ReactiveFormModule,它可以为您提供构建自定义表单验证的选项

@NgModule({
  imports:[ReactiveFormModule,...]
})
------------------------------------------------
myFormGroup = new FormGroup({
   'dateOfBirth': new FormControl(null, [/*here an array of validations*/ this.dateValidation.bind(this)])
})

dateValidation(control: any): {[s: string]: boolean}  {
   if((<dob>control.value).value == '10/08/2017')
     return {'not_old_enough': true}; // if you want to send error
   return null;
)

///// and in html
<form [formGroup]='myFormGroup'>
 <input
    name="dateOfBirth"
    type="dob"
    formControlName='dataOfBirth' />
</form>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.