首页 > 解决方案 > 多次单击提交按钮时,angular4 ngSubmit 会触发多次?

问题描述

我的申请中有多个表格,

当用户以任何形式多次单击提交按钮时,记录是否也多次保存在数据库中?

我尝试在提交单击时加载加载程序,但在加载程序显示用户多次单击提交之前?

1,这是我的表单 html :

<form name="form" (ngSubmit)="f.form.valid && createUpdateTenantUser()" #f="ngForm" novalidate>
<div>
**Have some form field**
</div>
<button class="btn btn-warning primary-action-btn" *ngIf="isCreate">Save User</button>
</form>

2,这是我的组件文件:

  private createUpdateTenantUser() {
  this.spinner.show();
  this.objDataService.PostData(Controller.AdminController, 
  Method.CreateUpdateTenantUser,
  this.objUserModel)
  .subscribe((data) => {
   if (data === true && data != null) {           
        this.router.navigate(['/Home/ManageTenants/UsersView']);
      }
    this.spinner.hide();
  });

}

标签: angular

解决方案


按钮的默认行为是type="submit"

您应该将按钮设置为type="button"(click) ="submit1()"

或制作单独的表格:

<form (ngSubmit)="submit1()">
 <button type="submit">submit</button>
</form>

<form (ngSubmit)="submit2()">
<button type="submit">submit</button>
</form>

推荐阅读