非强制性字段

时间:2018-04-24 10:10:38

标签: angular2-forms

我正在处理反应形式,例如我的反应形式有3个字段,但其中2个是强制性的,1个是非强制性的,但它有验证,如果用户在相应字段中输入字符串,它具有最小字符限制示例10个字符。但是我遇到问题,当用户输入字符串时显示错误但提交按钮不会禁用。



return FormBuilder.group({
      'surveyDueDate': ['', Validators.required],
      'rfsDueDate': [null, Validators.required],
      'comment': [null]
    });

   <form (ngSubmit)="submit(form)" #form="ngForm">
<div>
    Survey date:
    <input name="surveyDueDate" [(ngModel)]="surveyDueDate">
</div>
<div>
    Due Date :  
    <input name="rfsDueDate" [(ngModel)]="rfsDueDate">
</div>
<div>
    Gift shipping address:
    <input name="comment">
</div>

<button type="submit" [disabled]="form.invalid">Register now!</button>
</form>
&#13;
&#13;
&#13;

thanks in advance.

1 个答案:

答案 0 :(得分:1)

在您的组件中,侦听特定的字段更改。例如,

this.form.controls["comment"].valueChanges().subscribe((commentValue)=>{
  if(commentValue && commentValue.length>10 && this.form.invalid===false){
  this.form.controls["comment"].setErrors({invalid:true});
} else {
  this.form.controls["comment"].setErrors(null);
  }
});