Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
Clear startDate enddate error message validation if i change input value angular?

start date less thane end date but error displaySome one help me to clear error message validation when i change start date and endDate value ;``

function validator enddate startdate

   import {AbstractControl, ValidatorFn} from '@angular/forms';
export class CustomDateValidators {
 static fromToDate(fromDateField: string, toDateField: string, errorName: string = 'fromToDate'): ValidatorFn {
   return (formGroup: AbstractControl): { [key: string]: boolean } | null => {
     const fromDate = formGroup.get(fromDateField).value;
     const toDate = formGroup.get(toDateField).value;
     if ((fromDate !== null && toDate !== null)) {
       const isRangeValid = (toDate - fromDate > 0);
       return isRangeValid ? null : {dateRange: true};
     } 
     return null  
   };
 }
}

form group in ts

 this.form = this.fb.group({
 startDate: [null, [Validators.required]],
 endDate: [null, [Validators.required,]],  
 }, { validator: [
 CustomDateValidators.fromToDate('startDate', 'endDate')
 ]});

html

      <div class="form-group col-sm-6">
        <label for="endDate">{{'interventionSites.labels.endDate' | translate}}</label>
        <input type="date"
               class="form-control"
               id="endDate"
               placeholder="{{'dd-mm-yyyy' | translate}}"
               formControlName="endDate"
               required
               [ngClass]="{ 'is-invalid': f.endDate.errors && f.endDate.touched || form.hasError('dateRange') }">
               <div *ngIf="form.hasError('dateRange')" class="invalid-feedback">
                  {{'formFeedbacks.errorEndDate' | translate}}
               </div>
      </div>
    </div>
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

EndDate StartDte customValidators


    import {AbstractControl, ValidatorFn} from '@angular/forms';

export class CustomDateValidators {
  static fromToDate(fromDateField: string, toDateField: string, errorName: string = 'fromToDate'): ValidatorFn {
    return (formGroup: AbstractControl): { [key: string]: boolean } | null => {
      const fromDate = formGroup.get(fromDateField).value;
      const toDate = formGroup.get(toDateField).value;
      if ((fromDate !== null && toDate !== null && toDate<fromDate)) {
        // const isRangeValid = (toDate - fromDate > 0);
        // return isRangeValid ? null : {dateRange: true};
        return {[errorName]:true}
      }
      else{return {[errorName]:false}}
      return null
      
    };
  }
}

form group in ts

this.form = this.fb.group({
 startDate: [null, [Validators.required]],
 endDate: [null, [Validators.required,]],  
 }, { validator: [
 CustomDateValidators.fromToDate('startDate', 'endDate','errorName')
 ]});
get f() { return this.form.controls; }

HTML

<div class="form-group col-sm-6">
    <label for="endDate">{{'interventionSites.labels.endDate' | translate}}</label>
    <input type="date"
           class="form-control"
           id="endDate"
           placeholder="{{'dd-mm-yyyy' | translate}}"
           formControlName="endDate"
           required
           [ngClass]="{ 'is-invalid': f.endDate.errors && f.endDate.touched || form.hasError('errorName') }">
           <div *ngIf="form.hasError('errorName')" class="invalid-feedback">
              {{'formFeedbacks.errorEndDate' | translate}}
           </div>
  </div>
</div>
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!