Új hozzászólás Aktív témák

  • petyus_
    senior tag

    Bekérdezek ide, hátha valaki találkozott hasonlóval

    Angular 9

    Reactive formot használok, meg materialt

    Használok egy pár beépített validátort, meg egy sajátot a jelszóra

    A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra

    Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta

    Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani

    Ha mutatsz kódot, kicsit könnyebb lenne. Írtad, hogy Materialt használsz, ott ha több hibaüzenet is van, akkor neked kell kezelned, hogy melyik mikor jelenjen meg, alapból csak annyit néz, hogy dirty || touched, és ha van hiba, akkor megjeleníti (ha több hiba van, akkor mindet). Neked megírnod mindegyik hibára, hogy melyik mikor jelenjen meg.

    Illetve, ha már dirty || touched, és ezért mutatja a required hibát, akkor egyértelmű, hogy mutatja a "nincs e betű" hibát, mert ha üres, akkor nincs e betű :) .

    Nekem pl van egy ilyenem:

    <mat-form-field>
    <mat-label>Name</mat-label>
    <input type="text" id="name" formControlName="name" matInput />
    <mat-error *ngIf="accountName.hasError('required')">Account name is required</mat-error>
    <mat-error *ngIf="accountName.hasError('minlength')">Account name must be at least 3 characters</mat-error>
    </mat-form-field>

    Itt a required akkor jelenik meg, ha dirty || touched, a minlength-es pedig akkor, ha 1 vagy 2 karakter van beírva, de ez a gyári minlength, itt megvan írva ez a viselkedés.

Új hozzászólás Aktív témák