【问题标题】:Reset Reactive Form Fields重置响应式表单字段
【发布时间】:2021-10-04 00:41:31
【问题描述】:

我有大约 20 个文本框一个复选框

因此,无论用户选中/取消选中复选框,这 20 个文本框中的任何值都应重置。

应提交 20 个文本框值或应提交单个复选框值。

当前情景 我正在使用this.Myfrom.reset(); 重置所有字段并且它正在工作。

但我不想重置一个控制值。

问题-我是否应该通过从表单数组中获取每个控件并重置控件值来编写 20 行代码。

this.Myfrom.get('text1').reset();     

等到第 20 个文本框只跳过一个字段不重置。

有没有其他方法可以做到这一点。或者这种方法很好。

【问题讨论】:

  • 您可以在重置所有输入后将pathValue 用于该特定输入。 this.myForm.reset()清除所有字段然后this.myForm.patchValue({YourInput: 'YourValue'})
  • 但我使用 ngFor 在 HTML 表中的对象数组上创建动态行。所以让我们说如果生成了 10 行,在重置行的所有字段后如何设置值。
  • 然后您可以简单地将值推送到您想要的索引中。
  • 好的。重置所有字段后,我通过使用 var test=((this.form.get('controls') as FormArray).at(index) as FormGroup).value; 获取元素的值;但它现在正在工作。知道如何从表单组中获取元素的值。

标签: angular angular-reactive-forms reactive-forms


【解决方案1】:

我认为你可以使用这个:

this.yourForm.reset({
    email: this.yourForm.get('email').value, 
});

代码将重置 myForm 但不包括电子邮件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 2019-04-12
    • 1970-01-01
    • 2012-03-15
    • 2020-03-10
    • 1970-01-01
    相关资源
    最近更新 更多