当前位置:  开发笔记 > 前端 > 正文

如何在ANGULAR 2中提交表单时重置表单验证

如何解决《如何在ANGULAR2中提交表单时重置表单验证》经验,为你挑选了3个好方法。

我必须重置我的表单以及验证.是否有任何方法可以将表单状态从ng-dirty重置为ng-pristine.



1> Benny Bottem..:

以下是它目前如何与Angular 4.1.0 - 5.1.3一起使用:

class YourComponent {
    @ViewChild("yourForm")
    yourForm: NgForm;


    onSubmit(): void {
        doYourThing();

        // yourForm.reset(), yourForm.resetForm() don't work, but this does:
        this.yourForm.form.markAsPristine();
        this.yourForm.form.markAsUntouched();
        this.yourForm.form.updateValueAndValidity();
    }
}


不幸的是,这对于Angular 6.1.0似乎不起作用,输入被标记为无效。

2> cmartin..:

from.resetForm()

我已经尝试了很多东西,我发现实际上将form.submitted重置为false的唯一内容如下:

在模板中,将表单发送到提交函数:

在component.ts文件中,具有以下内容:

// import NgForm
import { NgForm } from '@angular/forms';

// get the passed in variable from the html file
submit(myForm: NgForm): void {

    console.log(myForm.form.status, myForm.form.dirty, myForm.form.pristine, myForm.form.untouched, myForm.submitted, myForm.dirty, myForm.pristine, myForm.untouched);

    // This is the key!
    myForm.resetForm();

    console.log(myForm.form.status, myForm.form.dirty, myForm.form.pristine, myForm.form.untouched, myForm.submitted, myForm.dirty, myForm.pristine, myForm.untouched);


}

console.log值输出以下内容 - 请注意它将重置所有值.

VALID true false false true true false false

INVALID false true true true false false true



3> asked_io..:

我在RC.5中这样做,我在模板中定义我的表单元素.


通过表单提交或观看它ViewChild根本不起作用,这对我来说已经足够了.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有