代码之家  ›  专栏  ›  技术社区  ›  Stefan Falk

提交表单的行为与预期不符

  •  -2
  • Stefan Falk  · 技术社区  · 6 年前

    我现在经常遇到另一个bug,因为我注意到我在两个按钮上使用的窗体调用 onSubmitClicked()

    <button mat-raised-button (click)="onBackClicked()">
      Back
    </button>
    <button mat-raised-button type="submit">
      Submit
    </button>
    

    无论我按哪个按钮,都会呼叫 onSubmitClicked() onBackClicked() 第一。卸下 type="submit"

    <form [formGroup]="placeInfoForm" (ngSubmit)="onSubmitClicked()">
    
      <div>
        <mat-form-field style="width: 100%;">
          <input matInput placeholder="Name" formControlName="name"/>
        </mat-form-field>
      </div>
    
      <div fxLayout="row" fxLayoutAlign="center">
        <button mat-raised-button (click)="onBackClicked()">
          Back
        </button>
        <button mat-raised-button>
          Submit
        </button>
      </div>
    
    </form>
    

    提交功能:

    onBackClicked() {
      console.log('onBackClicked()')
    }
    
    onSubmitClicked() {
      console.log('onSubmitClicked()');
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Stefan Falk    6 年前

    <button> 内部 <form>

    试试这个:

    <button mat-raised-button type="button" (click)="onBackClicked()">
      Back
    </button>