Angular Material (MAT) 表单字段

17 Mar 2025 | 4 分钟阅读

引言

<mat-form-field> 是一个用于包装多个 MAT 组件的组件,并实现表单字段的常见文本字段样式,例如提示消息、下划线和浮动标签。

这五个 MAT 组件被设计为在 form-field 中使用。

  1. <mat-chip-list>
  2. <input matNativeControl>
  3. <textarea matNativeControl>
  4. <mat-select>
  5. <select matNativeControl>

Angular Material 表单字段 API 参考

示例 1:简单表单


Angular Material (MAT) Form-Field

表单字段外观变体

<mat-form-field> 支持四种不同的外观样式,可以通过 appearance 输入来设置。

序号外观变体名称描述
1.遗留外观这是 mat-form-field 的默认样式,用于显示带下划线的输入框。
2.标准外观这是遗留外观的新版本。它与填充(fill)和轮廓(outline)外观更加一致。
3.填充外观除了下划线,它还显示一个带有填充背景框的 <mat-form-field>。
4.轮廓外观它显示一个四周都有边框的 <mat-form-field>,而不仅仅是下划线。

示例 2:表单字段外观变体


Angular Material (MAT) Form-Field

提示标签

提示标签是出现在 <mat-form-field> 下方下划线上的附加描述性文本。它包含两个提示标签:第一个左对齐,另一个右对齐。

提示标签有两种指定方式。

  1. 通过使用 <mat-form-field> 的 hintLabel 属性。
  2. 通过在表单字段中添加 <mat-hint> 模块。

当同一页面添加多个提示时,该页面出错的可能性会增加。

示例 3:带提示的表单字段


Angular Material (MAT) Form-Field

错误消息

可以通过添加 <mat-error> 模块来显示表单字段下方的错误消息。错误默认是隐藏的,在用户与元素交互后或原始表单提交后,在无效输入时显示。

如果表单字段可以包含多个错误条件,则由使用者决定先显示哪些消息。这可以通过 ngSwitch、ngIf 或 CSS 来实现。如果需要,可以同时显示多个错误消息,但 <mat-form-field> 一次只能显示一条错误消息。

示例 4:错误消息表单


Angular Material (MAT) Form-Field

主题和字体大小

<mat-form-field> 有一个 color-palette,可以设置表单字段的颜色。它会根据应用程序的主题颜色来设置表单字段的颜色。

<mat-form-field> 的字体大小继承自其父元素。可以使用 CSS 以清晰的方式覆盖它。

示例 5:表单字段主题和字体大小

HTML 代码

CSS 代码


Angular Material (MAT) Form-Field

前缀和后缀

文本字段的输入可以在输入标签之前和之后包含,作为后缀或前缀。文本字段视图将根据内容规范包含在包装表单控件的容器内。

如果要为文本字段添加文本前缀元素,必须在 <mat-form-field> 内部使用 matPrefix 指令。同样,如果要为文本字段添加文本后缀元素,必须在 <mat-form-field> 内部使用 matSuffix 指令。

示例 6:前缀和后缀表单字段


Angular Material (MAT) Form-Field
下一主题研究工具