css - 文本区域上的模板驱动表单验证
问题描述
我在我的角度表单中添加了一个文本区域。所有输入/垫选择字段都可以使用所需的属性。对于textarea
我添加了一个自定义类来显示红色边框。出于某种原因,当我单击清除按钮时,两个输入字段会自动应用其自己的红色类,但我的 a 自定义类texarea
不会,除非它已被触摸。这很好,但与输入字段的样式不匹配。如何将相同的验证样式应用于文本区域:https ://stackblitz.com/edit/angular-mpefsn
.text-error.ng-invalid.ng-touched{
border: 1px solid #b00b00;
}
如果您在堆栈闪电战加载时最初单击清除按钮,您将看到两个输入字段变为红色,但textarea
. 这是因为我有ngtouched
课。但是如果我删除它,那么 textarea 最初将是红色的。
解决方案
最简单的方法是将 matInput 与 textarea 一起使用
<mat-form-field>
<textarea matInput ...></textarea>
</mat-form-field>
那么您将对所有输入字段具有相同的样式。并且材料将应用红色,因为它是必需的。
更难的方法是,如果您希望 textarea 具有不同的样式,可以手动将类添加到 textarea 字段。
.ts 文件:
public cleared = false;
...
clear() {
..
this.cleared = true;
}
在你的 html 中:
<textarea [(ngModel)]="inputValue" [class.custom_invalid_form_class]="cleared && inputValue.length > 0"></textarea>
推荐阅读
- java - 如何推断具有泛型返回类型的方法的特定返回类型?
- unix - MariaDB Unix Socket 的 PhpMyAdmin(替代?)
- python - 当它解析的 PDF 损坏时,我可以让 PyPDF2 优雅地失败吗?
- java - 定时器阻塞 Swing 中的线程
- html - 在css中创建一个带有线条的箭头
- c - 如果语句在用 C 编写的代码中不能正常工作
- azure - 无法在 Azure VM 上安装 Docker
- java - 使用 Fetch API 通过 React 应用程序调用 servlet - 导致无法加载资源错误(406 - 不可接受)
- android - 每当我打开我的 android studio 并单击运行时,它都不会运行应用程序
- php - 如何在php codeigniter中将数组对象数据打印到数组数据中