所有表单字段通过后如何启用按钮

时间:2018-02-22 21:17:38

标签: javascript angular forms typescript

我的第一个Angular 5应用程序。

我已经阅读了https://angular.io/guide/form-validation以及我用Google搜索的几个页面来找到答案,但却发现它们都已经过时了。

我的表单上有多个输入框,如:

<form name="pizzaPlaceForm" class="form-container">
  <mat-form-field>
    <input matInput placeholder="Shop Name" [(ngModel)]="pizzaPlace.shopName"
           id="shopName" name="shopName" #shopName="ngModel"
           required minlength="4">
    <mat-error>You must provide a shop name at least 4 characters in length.</mat-error>
  </mat-form-field>
  <br/>
  <mat-form-field>
    <input matInput placeholder="Contact Name" [(ngModel)]="pizzaPlace.contactName"
           id="contactName" name="contactName" #contactName="ngModel"
           required minlength="4">
    <mat-error>You must provide a contact name at least 4 characters in length.</mat-error>
  </mat-form-field>
</form>

现在我想控制按钮的禁用状态,只有在输入所有必填字段后才能启用它,例如:

<button mat-raised-button disabled="pizzaPlaceForm.$invalid" (click)="onCreateClick()" *ngIf="createMode">Create</button>

只有它看起来$ invalid无效,所以我如何使用Angular 5?

2 个答案:

答案 0 :(得分:2)

如果表单无效,您要禁用该按钮。所以你可以尝试下面的

&#13;
&#13;
<button mat-raised-button [disabled]="!pizzaPlaceForm.valid" (click)="onCreateClick()" *ngIf="createMode">Create</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用ngForm为表单添加一个标识符。然后您可以禁用提交按钮 具有[disabled]属性。

[disabled]="pizzaPlace.form.invalid"[disabled]="pizzaPlace.invalid"

<form  #pizzaPlace="ngForm"  name="pizzaPlaceForm" class="form-container">



<button mat-raised-button [disabled]="pizzaPlace.form.invalid" (click)="onCreateClick()" *ngIf="createMode">Create</button>

</form>