Handle multiple date fields enable disable corresponding input

Discussão em 'Angular' iniciado por user2025730, Novembro 26, 2024.

  1. user2025730

    user2025730 Guest

    I need to fix this method so that it is one method that handles multiple input date fields to enable the corresponding input when date "FROM" is selected and date "TO" is enabled.

    I attempted to use formGroup and use formControlName to now avail

    HTML example

    ```<div class="display-flex flex-row width-full flex-align-end flex-row-override-480">
    <div class="width-half inline-input">
    <hvcore-form-field-date [dateMax]="dateMax | date:'yyyy-MM-dd'"
    [formGroup]="formGroup" formControlName="receiveDateFrom" class=""
    label="Recipient Date:">
    </hvcore-form-field-date>
    </div>
    <span class="usa-label usa-label-inline margin-right-3 margin-left-3">To:</span>
    <div class="width-half inline-input">
    <hvcore-form-field-date [dateMax]="dateMax | date:'yyyy-MM-dd'"
    [formGroup]="formGroup" formControlName="receiveDateTo" class=""
    label="">
    </hvcore-form-field-date>
    </div>
    </div>

    <div class="display-flex flex-row width-full flex-align-end flex-row-override-480">
    <div class="width-half inline-input">
    <hvcore-form-field-date [dateMax]="dateMax | date:'yyyy-MM-dd'"
    [formGroup]="formGroup" formControlName="caseStatusDateFrom" class=""
    label="Status Date:" (change)="setStatusDate(formControlName.value)">
    </hvcore-form-field-date>
    </div>
    <span class="usa-label usa-label-inline margin-right-3 margin-left-3">To:</span>
    <div class="width-half inline-input">
    <hvcore-form-field-date [dateMax]="dateMax | date:'yyyy-MM-dd'"
    [formGroup]="formGroup" formControlName="caseStatusDateTo" class=""
    label="">
    </hvcore-form-field-date>
    </div>
    </div>```


    TS Example

    public setStatusDate($event: Event) {
    debugger;
    const disableEnableOptions = { emitEvent: true };
    const caseStatusDateFrom = this.formGroup.get("caseStatusDateFrom");
    const caseStatusDateTo = this.formGroup.get("caseStatusDateTo");
    caseStatusDateFrom?.valueChanges.subscribe((value) => {
    debugger;
    $event;
    if (value === "") {
    caseStatusDateTo?.disable(disableEnableOptions);
    caseStatusDateTo?.setValue(caseStatusDateFrom?.value)
    }

    else {
    caseStatusDateTo?.enable(disableEnableOptions);

    if (caseStatusDateTo?.value !== "" && caseStatusDateTo?.value < caseStatusDateFrom?.value) {
    caseStatusDateTo?.setValue(caseStatusDateFrom?.value);
    }
    }
    })
    }

    Continue reading...

Compartilhe esta Página