【发布时间】:2019-12-04 00:34:24
【问题描述】:
我有一个包含三个复选框的表单,默认情况下它们是选中的。如果取消选中该复选框,并在其下方的表单中输入一个值,然后提交,一切正常。
如果我取消选中其中一个复选框,然后再次选中它并单击提交,则表示该表单无效。
https://angular-khmzeq.stackblitz.io
<form [formGroup]="form" autocomplete="off">
<h2>Terms</h2>
<div *ngIf="!this.input.data.acceptDate" [class.entry]="!form.get('acceptDate').value">
<mat-checkbox class="checkbox" formControlName="acceptDate"><strong>I accept the date</strong>
</mat-checkbox>
<br />
<br />
<mat-form-field *ngIf="!form.get('acceptDate').value">
<input matInput [matDatepicker]="optDate" placeholder="Preferred date" formControlName="optDate" [min]="now" required />
<mat-datepicker-toggle matSuffix [for]="optDate"></mat-datepicker-toggle>
<mat-datepicker #optDate></mat-datepicker>
</mat-form-field>
</div>
<div *ngIf="!this.input.data.acceptPod" [class.entry]="!form.get('acceptPod').value">
<mat-checkbox class="checkbox" formControlName="acceptPod"><strong>I accept the point of delivery</strong>
</mat-checkbox>
<br />
<br />
<mat-form-field *ngIf="!form.get('acceptPod').value">
<input matInput formControlName="optPod" type="text" placeholder="Preferred point of delivery" required />
</mat-form-field>
</div>
<div [class.entry]="!form.get('acceptPrice').value">
<mat-checkbox class="checkbox" formControlName="acceptPrice"><strong>I accept the price</strong>
</mat-checkbox>
<br/>
<br/>
<mat-form-field *ngIf="!form.get('acceptPrice').value">
<input matInput formControlName="price" type="number" placeholder="Price per {{ fuelQuery?.fuel.standardUnit }}" required />
<span matSuffix>{{ fuelQuery?.payment.currency }}</span>
</mat-form-field>
</div>
</form>
async submitCounter({ valid, value }) {
if(valid) {
// submit form
}
if(!valid){
console.log('not valid');
}
}
【问题讨论】:
标签: angular forms checkbox angular-material