Enable When Checkbox is Check in Reactive Forms

前端 未结 2 504
太阳男子
太阳男子 2020-12-12 02:46

I need help in making the rows enable only when the checkbox is check. The default rows should be disabled but when the checkbox is only check, that row will be enabled. Her

相关标签:
2条回答
  • 2020-12-12 03:00

    Another aproach is create a directive

    @Directive({
      selector: '[enabledControl]'
    })
    export class EnabledControlDirective {
    
        @Input() set enabledControl(condition: boolean) {
            if (this.ngControl) {
                if (this.ngControl.control) {
                    if (condition)
                        this.ngControl.control.enable();
                    else
                        this.ngControl.control.disable();
                }
            }
      }
      constructor(private ngControl : NgControl ) {
      }
    }
    

    Then you can use like

    <input class="col-md-6" formControlName="quantity"
         [enabledControl]="row.get('checkbox_value').value" >
    
    0 讨论(0)
  • 2020-12-12 03:07

    Have a look at the Demo & Src

    Stack Blitz, Fork

    Explanation:

    1. For enabling or disabling a input field, you need to use the following syntax [attr.disabled]="myForm.get('rows').value[i].checkbox_value ? null: ''"
    2. attr.disabled, here attr is for binding with properties which don't exist directly on an element
    3. myForm.get('rows').value[i].checkbox_value, is fairly straight forward access to a form control's value.
    0 讨论(0)
提交回复
热议问题