未显示最大长度的验证消息

时间:2019-08-04 09:14:41

标签: javascript angular angular-material

我有一个动态表单,其中使用材质设计来显示文本框,复选框等。我已动态添加了一些验证,它工作正常,但未显示有关最大长度和最小长度的消息。 / p>

动态验证不允许用户输入更多字符,但是消息也不在那里。

<mat-form-field class="example-full-width" style="width: 30%;">
              <input matInput [placeholder]="input.title" [formControlName]="input.name"
                [(ngModel)]="inputData[input.name]" [required]="input.validator.required"
                [minlength]="input.validator.minlength" [maxlength]="input.validator.maxlength">

              <div class="error"
                *ngIf="formCheck.get(formName).get(input.name).invalid &&
                                    (formCheck.get(formName).get(input.name).dirty ||
                                    formCheck.get(formName).get(input.name).touched)">
                <div *ngIf="formCheck.get(formName).get(input.name).hasError('required')">Input required</div>
                <div *ngIf="formCheck.get(formName).get(input.name).errors?.minlength">Minimum length is
                  {{input.validator.minlength}}</div>
                <div *ngIf="formCheck.get(formName).get(input.name).errors?.maxlength">Maximum length is
                  {{input.validator.maxlength}}</div>
              </div>
</mat-form-field>

dynamic-form.ts

@Component({
  selector: 'app-dynamic-form',
  templateUrl: './dynamic-form.component.html',
  styleUrls: ['./dynamic-form.component.css'],
})
export class DynamicFormComponent {
  @Input() fields: formControls[] = [];
  @Input() formCheck: FormGroup;
  @Input() formName: string;
  @Input() inputData: any;

  constructor(private cdr: ChangeDetectorRef) { }

  get value() {
    return this.formCheck.value;
  }

  onValueChange(event) {
    this.cdr.detectChanges();
  }

}

如何在输入字段下方或旁边显示验证消息?

我已经添加了component.ts文件。我将此组件用作子组件,并发送以下内容: 1.字段-包含控件详细信息的数组 2.模型对象,它将存储在表单中输入的数据。 3. formName
4.表单组

0 个答案:

没有答案