[英]Reset Form in angular 5 after submit
<form class="form-horizontal" name="form" (ngSubmit)="!f.form.invalid && staffDetails(model)" #f="ngForm" novalidate>
<div class="form-group"><button [disabled]="f.invalid" *ngIf ="buttonSave" class="btn btn-info">Save</button></div>
单击提交按钮后,重新提交时未刷新页面,但未获取值
HTML 组件
在您已经添加的表单标签中添加 #f="ngForm"
<form class="form-horizontal" name="form" (ngSubmit)="!f.form.invalid
&& staffDetails(model)" #f="ngForm" novalidate>
<!-- form inputs -->
</form> <!-- form closed>
逻辑组件即 TS 文件
import { ViewChild } from '@angular/core';
@ViewChild('f') myForm; //feth reference of form using ViewChild property
声明后,我们可以使用重置功能重置表单
staffDetails(data){
this.myForm.resetForm(); //now the form is reset
}
此功能的工作模块:- https://angular-xtzntk.stackblitz.io/
使用reset()
尝试这个
this.myform.reset();
当您使用模板驱动的表单时,请尝试此操作。
使用(ngSubmit)
事件处理表单提交事件。 并将表单作为参数传递给事件处理程序。 (ngSubmit)="onFormSubmit(f)
在你的 component.html
<form class="form-horizontal" name="form" (ngSubmit)="onFormSubmit(f)" #f="ngForm" novalidate>
在你的 component.ts
public onFormSubmit(ngForm: ngForm): void {
// !f.form.invalid && staffDetails(model)
ngForm.form.reset();
}
要在提交时重置完整的表单,您可以在 Angular 中使用 reset()。 下面的例子是在 Angular 8 中实现的。下面是一个订阅表单,我们将电子邮件作为输入。
<form class="form" id="subscribe-form" data-response-message-animation="slide-in-left" #subscribeForm="ngForm"
(ngSubmit)="subscribe(subscribeForm.value); subscribeForm.reset()">
<div class="input-group">
<input type="email" name="email" id="sub_email" class="form-control rounded-circle-left"
placeholder="Enter your email" required ngModel #email="ngModel" email>
<div class="input-group-append">
<button class="btn btn-rounded btn-dark" type="submit" id="register"
[disabled]="!subscribeForm.valid">Register</button>
</div>
</div>
</form>
官方文档: https : //angular.io/guide/forms#show-and-hide-validation-error-messages
角度:8.2.11
在模板中:HTML
<form #f="ngForm" [formGroup]="postForm" (keydown.enter)="$event.preventDefault()" (ngSubmit)="onSubmit(f)">
在组件中:打字稿
async onSubmit(f: NgForm) {
f.reset();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.