Vi använder kakor (cookies) för att webbplatsen ska fungera så bra som möjligt för dig.
Vi använder också kakor för webbanalys för att göra webbplatsen bättre.
Godkänner du att vi också använder kakor för webbanalys?
ValidationPlugin möjliggör validering av inmatningsfält genom att lägga till direktivet v-validation.
Internt används ValidationService ifrån @fkui/logic.
ValidationPlugin initialiseras på nedan sätt (bör göras så tidigt i applikationen som möjligt, t.ex. main.ts )
Via ValidationService.addValidationErrorMessages kan man specificera översättningar av validator fel.
I nedan exempel anges ett objekt med validatornamnet som nyckel och översättning som värde (om översättning saknas så kommer validatornamnet istället användas).
import { ValidationService } from'@fkui/logic';
ValidationService.addValidationErrorMessages({
'required', 'Fältet krävs',
'personnummerFormat', 'Felaktigt format på personnummer',
});
För att få autocompletion av validatornamn så rekommenderas att använda ValidationErrorMessageBuilder:
import { ValidationService, ValidationErrorMessageBuilder } from"@fkui/logic";
ValidationService.addValidationErrorMessages(
ValidationErrorMessageBuilder.create()
.map("required", "The field is required")
.map("personnummerFormat", "Bad formatted social security number")
.mapCombined(
"required",
"personnummerFormat",
"You must enter a social security number",
)
.build(),
);
Flera validatorer kan läggas till fältet genom att separera dem med punkter. Vissa validatorer kräver en konfiguration vilket görs genom att ange konfigurationen i direktivsvärdet.
Observera Ordningen definierar prioriteten för varje validator, ju längre till vänster desto högre prioritet.
Till exempel i v-validation.required.maxLength.minLength kommer den required validatorn att köras först och endast om den validatorn är giltig kommer nästa validator att köras och så vidare.
Valideringsdirektivet är även reaktivt vilket betyder att man kan binda variabler i konfigurationen och när variablerna uppdateras i runtime så kommer valideringen hantera detta.
Om man behöver utveckla en egen komponent med inbyggd validering som standard-beteende så måste man lägga till validatorn i komponentens mounted()-metod via metoden ValidationService.addValidatorsToElement() och med tredje parametern isBaseConfigs satt till true:
Alla validatorers konfiguration tar attributet errorMessage som ersätter felmeddelandet som definieras med ValidatorService.addValidationErrorMessages funktionen.
I de fall då flera fält har samma etikett kan det bli svårt att urskilja dem i fellistan.
Vue-direktivet v-validation-prefix plockar ut errorMessage från alla component-validity event som kommer underifrån i DOM hierarkin och lägger på den angivna texten som prefix innan det bubblar vidare till formuläret.
Det innebär att man kan lägga direktivet på flera platser för att kontinuerligt lägga på fler prefix.
Om du dynamiskt behöver aktivera / inaktivera en validering, kan du passa in enabled som option på samtliga validatorer.
Ett use-case för detta är tex om ett fält längre ned skall vara required baserat på val som tidigare har gjorts.
Vid validering tolkas inaktiva fält (inmatningsfält med disabled attributet satt) som giltiga oavsett resultatet från validering.
Detta eftersom användaren inte har möjlighet att interagera med inaktiva fält och därför inte kan rätta felet.
Om du dynamiskt växlar disabled krävs det att du manuellt validerar om elementet när fältet blir inaktivt för att tömma eventuella existerande fel.
Det rekommenderade sättet är att använda sig av event listeners för change, click osv och validera om därifrån.