angular - 验证失败时,Div 中的 FormGroup 突出显示所有字段
问题描述
我需要在我的角度应用程序中重用 2 个字段 - 生成日期和到期日期。
注意:我必须使用 <div [formGroup]...> 因为这个组件会以其他形式被调用。我不能在这里使用表单标签。
我创建了以下组件 - MyFilter.component.ts:
export class MyFilterComponent {
filterForm: FormGroup;
constructor(private formBuilder: FormBuilder) {
this.filterForm = formBuilder.group({
producedDate: ['', [Validators.required]],
expiryDate: ['', [Validators.required]]
});
}
}
然后我有下面的 my-filter.component.html:
<div [formGroup]="filterForm">
<div class="form-group">
<label for="producedDate"> Produced Date</label>
<input type="date" formControlName="producedDate" class="form-control">
<div class="alert alert-danger" name="producedDateRequiredWarning"
*ngIf="filterForm.get('producedDate').errors && filterForm.get('producedDate').touched">
Field is Required.
</div>
</div>
<div>
<label for="expiryDate"> Expiry Date</label>
<input type="date" formControlName="expiryDate" class="form-control">
<div class="alert alert-danger" name="expiryDateRequiredWarning"
*ngIf="filterForm.get('expiryDate').errors && filterForm.get('expiryDate').touched">
Field is Required.
</div>
</div>
</div>
当验证失败时——即,如果我触摸生产日期字段并且不输入任何内容,我希望只有该字段以红色突出显示。但我目前在左侧有一个长边框,如下所示:
有没有办法在不覆盖css的情况下摆脱它?
解决方案
尝试将您的 ngIf 条件更改为:
*ngIf="filterForm.get('producedDate').touched && filterForm.get('producedDate').hasError('required')"
推荐阅读
- java - 在不同主机上使用 Facebook 身份验证
- python - pyTelegramBotApi 无法获取 message_id
- react-native - 如何水平和垂直渲染平面列表?
- go - 阻止来自 gorilla/mux 的打开 URL 重定向
- c++ - 你能在一个向量中有一个字符串和一个整数吗?
- java - 休眠@NamedQuery 加入
- javascript - 使用 JS/HTML 倒带 YouTube 视频
- azure - 为什么 pod 会自行终止它?
- css-modules - 如何仅在另一个组件内覆盖某些样式
- android - Android Retrofit:response.errorBody 不为 null 但 response.errorBody.string() 返回 null