Angular 表单 onSubmit() 被其他按钮调用
Angular Form onSubmit() is called by other button
我正在做一个 Angular 12 Material 应用程序。
我有一个像这样的简单表格
<form [formGroup]="form" class="normal-form" (ngSubmit)="onSubmit()">
<mat-grid-list cols="2" rowHeight="300px">
<mat-grid-tile>
<div class="controles-container">
<input type="hidden" formControlName="Id">
<mat-label><strong>Active</strong></mat-label>
<mat-slide-toggle formControlName="IsActive"
[checked]="checked">
</mat-slide-toggle>
<textarea matInput hidden></textarea>
<mat-form-field>
<input formControlName="Name" matInput placeholder=" Notification Name" >
<mat-error>This field is mandatory</mat-error>
</mat-form-field>
<mat-form-field>
<mat-select formControlName="ProcessorName" placeholder="Processor Name">
<ng-container *ngFor="let processors of dataSourceProcessors">
<mat-option value="{{processors.Value}}">{{processors.Text}}</mat-option>
</ng-container>
</mat-select>
</mat-form-field>
</div>
</mat-grid-tile>
<mat-grid-tile>
<div class="controles-container">
<mat-label><strong>Channel</strong></mat-label>
<li *ngFor="let chanel of dataSourceChannelLevel">
<mat-checkbox id={{chanel.NotificationLogLevel.Id}} formControlName="Channel" (change)="onChangeEventFunc( $event)">
{{chanel.NotificationLogLevel.Name}}
</mat-checkbox>
</li>
<div class="button-row">
<button mat-raised-button color="warn" (click)="onClose()">Close</button>
<button mat-raised-button color="primary" type="submit" [disabled]="form.invalid">Create</button>
</div>
</div>
</mat-grid-tile>
</mat-grid-list>
</form>
在组件中我有这个
form:FormGroup=new FormGroup({
Id: new FormControl(null),
Name: new FormControl('',Validators.required),
IsActive: new FormControl(true),
ProcessorName: new FormControl(0),
Channel: new FormControl(''),
});
我有两个按钮,创建调用 Form.Submit 和关闭按钮...
我遇到的问题是,当我调用“关闭”按钮时,它会调用 onClose() 函数以及 Submit() 函数。
我错过了什么?
谢谢
如果按钮是提交按钮如果它 inside/associated 带有表单并且没有 type="button"。添加 type="button" 属性以避免在表单元素上触发 onsubmit 函数。
<button mat-raised-button color="warn" (click)="onClose()" type="button">Close</button>
我正在做一个 Angular 12 Material 应用程序。
我有一个像这样的简单表格
<form [formGroup]="form" class="normal-form" (ngSubmit)="onSubmit()">
<mat-grid-list cols="2" rowHeight="300px">
<mat-grid-tile>
<div class="controles-container">
<input type="hidden" formControlName="Id">
<mat-label><strong>Active</strong></mat-label>
<mat-slide-toggle formControlName="IsActive"
[checked]="checked">
</mat-slide-toggle>
<textarea matInput hidden></textarea>
<mat-form-field>
<input formControlName="Name" matInput placeholder=" Notification Name" >
<mat-error>This field is mandatory</mat-error>
</mat-form-field>
<mat-form-field>
<mat-select formControlName="ProcessorName" placeholder="Processor Name">
<ng-container *ngFor="let processors of dataSourceProcessors">
<mat-option value="{{processors.Value}}">{{processors.Text}}</mat-option>
</ng-container>
</mat-select>
</mat-form-field>
</div>
</mat-grid-tile>
<mat-grid-tile>
<div class="controles-container">
<mat-label><strong>Channel</strong></mat-label>
<li *ngFor="let chanel of dataSourceChannelLevel">
<mat-checkbox id={{chanel.NotificationLogLevel.Id}} formControlName="Channel" (change)="onChangeEventFunc( $event)">
{{chanel.NotificationLogLevel.Name}}
</mat-checkbox>
</li>
<div class="button-row">
<button mat-raised-button color="warn" (click)="onClose()">Close</button>
<button mat-raised-button color="primary" type="submit" [disabled]="form.invalid">Create</button>
</div>
</div>
</mat-grid-tile>
</mat-grid-list>
</form>
在组件中我有这个
form:FormGroup=new FormGroup({
Id: new FormControl(null),
Name: new FormControl('',Validators.required),
IsActive: new FormControl(true),
ProcessorName: new FormControl(0),
Channel: new FormControl(''),
});
我有两个按钮,创建调用 Form.Submit 和关闭按钮... 我遇到的问题是,当我调用“关闭”按钮时,它会调用 onClose() 函数以及 Submit() 函数。
我错过了什么?
谢谢
如果按钮是提交按钮如果它 inside/associated 带有表单并且没有 type="button"。添加 type="button" 属性以避免在表单元素上触发 onsubmit 函数。
<button mat-raised-button color="warn" (click)="onClose()" type="button">Close</button>