【发布时间】:2021-11-06 02:03:34
【问题描述】:
如何防止用户多次提交表单?我目前的问题是当用户多次单击提交按钮时,它将创建多个用户。它应该只创建一个用户并等待创建另一个用户。
这是我所拥有的:
<button mat-flat-button color="primary" [disabled]="userStatus == 'USER_EXISTS_ON_CURRENT_ACCOUNT'" (click)="createUser()">Create
User</button>
打字稿:
createUser() {
this.accountService.create(this.modelForm.value).pipe(
finalize(() => {
this.isInProgress = false;
})
).subscribe({next: (res) => { this.notificationService.showSuccess('User has been created successfully.');
this._router.navigate(['settings/user']);
},
error: (err) => {this.notificationService.showError('Something went wrong, Try again later.');
this.isInProgress = false;
},
complete: () => {
this.isInProgress = false;
},
});
}
【问题讨论】:
-
该功能是否应该限制用户点击,直到 API 响应先前点击事件的值?或者只是限制用户在“n”秒内再次单击该按钮?
标签: angularjs typescript mouseevent