Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于一个值在angular中禁用mat form字段?_Javascript_Angular_Types - Fatal编程技术网

Javascript 如何基于一个值在angular中禁用mat form字段?

Javascript 如何基于一个值在angular中禁用mat form字段?,javascript,angular,types,Javascript,Angular,Types,我们如何禁用matformfield,angular中的输入字段。我想基于test.status值禁用该字段,如果status等于1,则此表单被禁用。谢谢, 描述 描述不能超过100个字符! 表单生成器组 this.form = this.formBuilder.group({ ... status: [ { value: test.status disabled: true, } ], des

我们如何禁用matformfield,angular中的输入字段。我想基于test.status值禁用该字段,如果status等于1,则此表单被禁用。谢谢,


描述
描述不能超过100个字符!
表单生成器组

this.form = this.formBuilder.group({ ...
    status: [
        {
          value: test.status 
          disabled: true,
        }
    ],
    description: [
        test.description || null, [
          Validators.maxLength(100),
        ]
    ],

已禁用
属性在被动表单上不起作用。您需要设置以下条件:

 this.formName = this.formBuilder.group({
  fieldName: [{value: 'someValue', disabled:(condition)}]
})
例如:

 this.form = this._fb.group({
       description : [{value: 'someValue', disabled:(this.status>0)},[Validators.required]]
     })
当表单字段被禁用时,它不包括在提交的值(即表单对象)中

您可以获得如下值:

this.formName.getRawValue();

请在输入字段html中附加/使用以下部分:

[disabled]=“form.controls.status[0]。值==1” (或) [attr.disabled]=“form.controls.status[0]。值==1?“”:null” (或) [class.disable]=“form.controls.status[0]。值==1”


希望这有帮助。

测试。状态是自变量?或者它是表单的一部分?它是表单的一部分,但它是一个独立的字段,具有独立的属性value@programoholic,test.status是一个自变量?我将如何将验证器插入到它的验证器中。maxLength(100),当我包含验证器Validator是第二个参数时收到错误。更新了我的答案,先生,您得到这样的值是什么意思。formName.getRawValue()?你能详细说明一下吗?@当你提交表单时,
formname.values
包含所有字段的值。但是当控件被禁用时,form.values将不包含它的值。因此,如果您需要所有的值,包括禁用的值。你应该使用我分享的方法。