У меня есть группа форм, в которой есть поля ввода, проверки устанавливаются следующим образом:
<mat-form-field class = "mat-width-98" appearance = "outline">
<mat-label>Profession Occupation/ Job</mat-label>
<input matInput placeholder = "Profession Occupation/ Job" formControlName = "occupation"
(focusout) = "onFocusOutEvent($event, 'occupation')"
[ngClass] = "isMatched('occupation') ? '' : 'input-highlight'"
maxlength = "{{moduleConfig.td_reg_occupation_length}}">
<mat-error *ngIf = "dataEntryMainFormGroup.get('occupation').hasError('required') ">
{{msgConfig.td_data_entry_required_occupation}}
</mat-error>
<mat-error *ngIf = "dataEntryMainFormGroup.get('occupation').hasError('invalidNameFormat') ">
{{msgConfig.td_registration_validation_invalid_occupation}}
</mat-error>
</mat-form-field>
Вот набор проверки:
occupation: new FormControl('', [Validators.required, this.validationService.invalidNameFormat.bind(this)]),
Проблема здесь в том, что проверки запускаются правильно, но даже когда я нажимаю другую кнопку в пользовательском интерфейсе, эти проверки отображаются, эта кнопка не имеет ничего общего с этими проверками. Я хочу, чтобы он срабатывал при расфокусировке.
Имейте в виду, что это вкладка, с которой я работаю.
добавить в html:
<mat-error *ngIf = "dataEntryMainFormGroup.get('occupation').hasError('required')&&
(dataEntryMainFormGroup.get('occupation').dirty ||
dataEntryMainFormGroup.get('occupation').touched)
">
{{msgConfig.td_data_entry_required_occupation}}
</mat-error>
Я нашел простое решение, которого здесь не было, что я сделал,
В моем компоненте было много кнопок, но я забыл упомянуть тип, вот он:
<button type = "button">
Какая связь между вопросом и ответом?
Спасибо @user22760463, теперь проверки скрыты, но поле ввода изменено на красный цвет, я тоже хочу это предотвратить.