代码之家  ›  专栏  ›  技术社区  ›  Oleksandr Oleksiv

如何从窗体组中禁用的窗体控件中获取值?

  •  46
  • Oleksandr Oleksiv  · 技术社区  · 8 年前

    我尝试使用form state对象初始化新的FormControl,然后我注意到该控件不会影响表单验证,它也会从FormGroup值中消失。

    this.userForm = new FormGroup({
      email: new FormControl('', Validators.required),
      firstName: new FormControl('',Validators.required),
      lastName: new FormControl('',Validators.required),
      role: new FormControl({value: 'MyValues', disabled: true},Validators.required),
     })
    

    现在,如果我尝试这样做:

    this.userForm.value //email, firstName, lastName
    

    是否有人遇到此问题?有什么解决方案吗? 角度版本:5.2.6

    4 回复  |  直到 8 年前
        1
  •  114
  •   Jota.Toledo    8 年前

    这不是问题,而是预期的行为。如果要包括所有值,而不考虑禁用状态,请使用以下选项:

    this.userForm.getRawValue()
    
        2
  •  8
  •   eper    7 年前

    非常感谢。 @jota-toledo 给了我80%的需要。

    对于那些正在寻找相同问题的解决方案,但对于嵌套表单,我可以通过更改我的

    this.userForm.get('nestedForm').value
    

    this.userForm.getRawValue().nestedForm
    
        3
  •  5
  •   Utkarsh    5 年前

    如果有人正在寻找残疾人的解决方案 窗体控件 属于 Formaray公司 在a中 FormGroup格式组

    试试这个- (this.formName.controls['formArrayName'] as FormGroup).getRawValue();

        4
  •  2
  •   Bhavin    4 年前

    TS 解决方案:

    this.userForm.getRawValue()
    

    仅HTML 解决方案:

    <input formControlName="name" [readonly]="condition">
    

    仅CSS 解决方案:

    pointer-events: none;
    

    Html和Css解决方案将阻止用户与输入进行交互,但被动形式将获得价值

    推荐文章