Angular 我的表单无效,但我的(ngSubmit)正在调用该函数
我有一个formGroup,里面有一个submit按钮:Angular 我的表单无效,但我的(ngSubmit)正在调用该函数,angular,Angular,我有一个formGroup,里面有一个submit按钮: <form [formGroup]="myGroup" (ngSubmit)="submitForm()"> <input type="text" formControlName="name"> <button type="submit">Submit</button> </
<form [formGroup]="myGroup" (ngSubmit)="submitForm()">
<input type="text" formControlName="name">
<button type="submit">Submit</button>
</form>
当我没有填写输入并单击按钮时,我的组件正在调用submitForm()
。
我放置了一个console.log(myGroup.valid)
,它是false
,但仍然调用(ngSubmit)
事件。
我还有其他组件,当表单无效时,当用户单击submit按钮时,我不会自动调用submit函数。 我不知道我是否忘记了做这个自动检查,或者我真的需要在我的提交函数中做一些事情,比如:
if(this.myGroup.valid) {}
不要从启用的按钮开始,我更喜欢在验证良好之前不显示任何按钮 您可以像这样连接更改侦听器:
fromGroup.changes(changes=>{
if (changes=="VALID"){ showMyButton(); }
})
如果表单无效,那么禁用submit按钮如何?或者使用
[disabled]=“!myGroup.valid”
禁用按钮,或者在submitForm()中检查表单是否有效看起来不错,但我仍然好奇这在某些组件中是如何工作的,而在其他组件中,当表单无效时调用submit函数,您可以尝试将控件初始化为newformcontrol('',{validators:validators.required,updateOn:'change'})
,但如果它在某些组件中工作,而在某些组件中不工作,那就很奇怪了。无论哪种方式,如果表单无效,禁用按钮都是一种好的做法,所以我会这样做
fromGroup.changes(changes=>{
if (changes=="VALID"){ showMyButton(); }
})