Angular 所需的反应式表单控件在原始状态下无效
我有一个带有验证器的角度反应式表单(取自方案,但根据需要参考)。当窗体启动时,当它仍然是原始的、未被触摸的和未脏的时,控件被激活。 有没有假设它为什么会发生\如何避免它?使用,例如Angular 所需的反应式表单控件在原始状态下无效,angular,angular-validation,Angular,Angular Validation,我有一个带有验证器的角度反应式表单(取自方案,但根据需要参考)。当窗体启动时,当它仍然是原始的、未被触摸的和未脏的时,控件被激活。 有没有假设它为什么会发生\如何避免它?使用,例如 <div *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger"> ... </div> ... 从 为什么检查脏的和触摸的? 在用户有机会编辑表单之前,您可能
<div *ngIf="name.invalid && (name.dirty || name.touched)"
class="alert alert-danger">
...
</div>
...
从
为什么检查脏的和触摸的?
在用户有机会编辑表单之前,您可能不希望应用程序显示错误。在用户执行以下两项操作之一之前,对脏控件和触摸控件的检查可防止显示错误:更改值,使控件变脏;或模糊表单控件元素,将控件设置为“触碰”
所有必需的表格控件,如以下表格中所示,标记为必需
createFormGroup() {
return new FormGroup({
email: new FormControl('', [Validators.required, Validators.email]),
mobile: new FormControl('', [Validators.required]),
country: new FormControl('', [Validators.required])
});
}
所以上面的表单控制电子邮件、手机和国家/地区将无效,因此用户将禁用提交按钮或向用户显示一些消息
所以在这里你们可以显示当用户触摸到下面的字段
<input formControlName="mobile">
<span *ngIf="mobile.invalid && mobile.errors.required">
Mobile is required.
</span>
<span *ngIf="mobile.invalid && mobile.errors.invalidNumber">
Value has to be a number.
</span>
手机是必需的。
值必须是一个数字。
希望这会有所帮助。请添加一些代码以了解您的问题。下面是代码:const ctrl=this.formBuilder.control(“”,Validators.required);console.log(ctrl.invalid);console.log(ctrl.pristine);=>千真万确