You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular6中如何清除表单提交状态?能否手动设置submitted值?

问题:Angular 6中能否手动设置表单的submitted状态?

我在Angular 6开发时碰到一个棘手的问题:表单放在模态框里,提交后模态框的DOM不会被销毁,导致myForm.submitted一直处于true状态。我试过用markAsPristine()和form.reset()方法,但这两个方法完全不影响submitted状态,再次打开模态框时,表单的CSS错误类直接被触发,体验很差。想请教下有没有办法手动把submitted状态设为true或者false?


解决方案

其实你需要的resetForm()方法就是解决这个问题的关键,只是之前的调用方式有误:

  • 重置单个表单控件的写法是没问题的:
    myForm.form.controls['description'].reset(); // 运行正常
    
  • 错误的调用方式(会提示“不是一个函数”):
    myForm.form.resetForm(); // 无效
    
  • 正确的重置整个表单写法(会同时把submitted状态重置为false):
    myForm.resetForm(); // 运行正常
    

这个方法会帮你重置表单的所有状态,包括submitted,刚好能解决模态框再次打开时的CSS错误类问题~

内容的提问来源于stack exchange,提问作者Dbrandt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:51:18