css 角材质错误信息隐藏在下一行后面

7ivaypg9  于 2023-03-24  发布在  其他
关注(0)|答案(4)|浏览(122)

我在我的应用程序中使用了angular材质,我遇到了一个问题,基本上,当错误消息太大时,错误消息隐藏在下一个输入后面:

超文本标记语言:

<div class="example-container">
  <mat-form-field>
    <input matInput placeholder="Enter your email" [formControl]="email" required>
    <mat-error *ngIf="email.invalid">{{getErrorMessage()}}</mat-error>
  </mat-form-field>
  <mat-form-field>
    <input matInput placeholder="Enter your email">
  </mat-form-field>
</div>

TS:

import {Component} from '@angular/core';
import {FormControl, Validators} from '@angular/forms';

/** @title Form field with error messages */
@Component({
  selector: 'form-field-error-example',
  templateUrl: 'form-field-error-example.html',
  styleUrls: ['form-field-error-example.css'],
})
export class FormFieldErrorExample {
  email = new FormControl('', [Validators.required, Validators.email]);

  getErrorMessage() {
    return this.email.hasError('required') ? 'You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value You must enter a value ' :
        this.email.hasError('email') ? 'Not a valid email' :
            '';
  }
}

真的不知道如何使用材质模式来解决这个问题,或者使用另一种方法,例如纯css(覆盖材质类或添加新类-但我仍然不知道这是否是一件正确的事情)

**一个

gdx19jrr

gdx19jrr1#

这可能会有所帮助,它描述了表单验证的一些最佳实践。
Form validation best practices
至于你的答案,<mat-error>没有暴露的属性,你可以设置这些属性来使错误框大小动态化。
您将不得不使用不同的方法,例如:隐藏溢出并在悬停时显示弹出窗口。
验证错误消息应该简洁,任何额外的数据应该单独显示。

c2e8gylq

c2e8gylq2#

您可以为下一个元素添加顶部边距,类似于以下内容

[ngClass]="{ 'mt-20': form.controls['password'].hasError('pattern') }"
qxsslcnc

qxsslcnc3#

使用Angular v15的基于MDC的表单字段,您可以将subscriptSizing输入设置为'dynamic'。然后表单字段将在出现错误时动态添加必要的空格。有关更多信息,请参阅文档。
更新stackblitz:https://stackblitz.com/edit/angular-74r7uy
有关MDC迁移的更多信息,请参见此guide

wyyhbhjk

wyyhbhjk4#

使用下面的css解决此问题:

.mat-form-field-subscript-wrapper{ position: static; }

.mat-form-field-underline{ position: static; }

相关问题