You need to enable JavaScript to run this app. Angular中如何检测Form表单中mat-input输入框是否非空以控制元素显示
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何检测Form表单中mat-input输入框是否非空以控制元素显示

问题原因

你原来的写法不生效是因为 modelForm.get('emailAddress') 返回的是 FormControl 实例对象,并非输入框的实际输入值,所以直接取 .length 无法获取内容长度。

正确写法

你需要先通过 value 属性拿到输入框的实际内容,再判断长度即可。推荐对内容做去空格处理,避免用户输入全空格被误判为有效内容,修改后的HTML2代码如下:

<div fxLayout="row" *ngIf="modelForm.get('emailAddress')?.value?.trim().length > 0">
    <span id="text" style="padding-top: 20px;">Enter user's information (*)</span>
</div>

代码里的可选链运算符 ?. 是为了避免表单控件初始化未完成时读取属性报错,如果你使用的Angular版本不支持可选链,也可以写成:

<div fxLayout="row" *ngIf="modelForm.get('emailAddress').value && modelForm.get('emailAddress').value.trim().length > 0">
    <span id="text" style="padding-top: 20px;">Enter user's information (*)</span>
</div>

可选简化方案

如果你已经给emailAddress控件设置了required校验规则,也可以直接通过校验状态判断,写法更简洁:

<div fxLayout="row" *ngIf="!modelForm.get('emailAddress')?.hasError('required')">
    <span id="text" style="padding-top: 20px;">Enter user's information (*)</span>
</div>

内容的提问来源于stack exchange,提问作者Art McAhon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 02:12:03