Påkrevde felt
Slik gjør du et felt påkrevd, og slik tilpasser du feilmeldingen brukeren ser
Et påkrevd felt er et felt brukeren må fylle ut før brukeren kan gå videre. Du gjør et felt påkrevd i innstillingene for komponenten i Altinn Studio Designer. Designer lagrer det som required på komponenten i layoutfilen:
App/ui/{taskId}/layouts/{page}.json{
"id": "fornavn",
"type": "Input",
"textResourceBindings": { "title": "tekst-fornavn" },
"required": true,
"dataModelBindings": { "simpleBinding": "Person.Fornavn" }
}
Verdien kan også være et dynamisk uttrykk, slik at feltet bare er påkrevd i noen tilfeller.
Når brukeren ser feilen
Brukeren ser ikke feil for tomme påkrevde felt mens brukeren fyller ut skjemaet. Appen viser feilen først når brukeren prøver å sende inn, lagre en rad i en repeterende gruppe eller bytte side, hvis du har satt opp appen til å sjekke når brukeren lagrer en rad eller bytter side. Se Når brukeren ser valideringsmeldingene.
Alle andre valideringer viser appen med en gang. Vanligvis lar du derfor required sjekke om et felt er fylt ut, og lar de andre reglene godta tomme felt.
Skjulte felt
Er komponenten skjult for brukeren, sjekker ikke appen om feltet er fylt ut, verken i nettleseren eller på serveren. Det gjelder også når komponenten ligger på en skjult side eller i en skjult gruppe.
Du kan derfor gjøre en komponent både påkrevd og skjult, slik at feltet bare er påkrevd når brukeren ser det. Begge deler kan du sette opp i Designer. I layoutfilen ser det slik ut:
App/ui/{taskId}/layouts/{page}.json{
"id": "antall-barn",
"type": "Input",
"textResourceBindings": { "title": "tekst-antall-barn" },
"required": true,
"hidden": ["equals", ["component", "har-barn"], false],
"dataModelBindings": { "simpleBinding": "Person.AntallBarn" }
}
Standard feilmelding
Feilmeldingen for påkrevde felt er “Du må fylle ut {0}”. Appen setter inn navnet på feltet i stedet for {0}.
Appen finner navnet på feltet slik:
- Har komponenten en
shortName-tekst, bruker appen den. Du setter oppshortNameper komponent, på samme måte som ledeteksten (title). - Ellers bruker appen ledeteksten (
title), med liten forbokstav hvis teksten ikke ser ut som en forkortelse. - For komponenter med flere felt, som Adresse, bruker appen standardtekstene for hvert felt.
Felt med bare title
App/ui/{taskId}/layouts/{page}.json{
"id": "fornavn",
"type": "Input",
"textResourceBindings": {
"title": "tekst-fornavn"
},
...
}
Tekstene i ressursfilen:
App/config/texts/resource.{language}.json{
"id": "tekst-fornavn",
"value": "Fornavn"
}
Da blir valideringsmeldingen "Du må fylle ut fornavn".
Felt med shortName
Er ledeteksten lang, eller passer den dårlig i feilmeldingen, kan du legge til en shortName-tekst som appen bruker i stedet. Appen bruker shortName bare i denne feilmeldingen, ikke andre steder.
App/ui/{taskId}/layouts/{page}.json{
"id": "fornavn",
"type": "Input",
"textResourceBindings": {
"title": "tekst-fornavn",
"shortName": "fornavn-kort"
},
...
}
Tekstene i ressursfilen:
App/config/texts/resource.{language}.json{
"language": "nb",
"resources": [
{
"id": "tekst-fornavn",
"value": "Skriv fornavnet ditt"
},
{
"id": "fornavn-kort",
"value": "fornavnet ditt"
}
]
}
Da blir valideringsmeldingen "Du må fylle ut fornavnet ditt".
Erstatte feilmeldingen helt
Vil du bruke en helt annen feilmelding for et felt, legger du til requiredValidation i textResourceBindings på komponenten. Verdien er en tekstnøkkel fra tekstressursene, slik at meldingen finnes på alle språkene appen støtter.
App/ui/{taskId}/layouts/{page}.json{
"id": "fornavn",
"type": "Input",
"textResourceBindings": {
"title": "tekst-fornavn",
"requiredValidation": "fornavn-pakrevd"
},
...
}
Påkrevde felt på serveren
Appen kan også sjekke påkrevde felt på serveren når brukeren går videre i prosessen. Sjekken er av som standard, og du slår den på med innstillingen RequiredValidation. Vi anbefaler å slå den på, slik at appen også sjekker data som sluttbrukersystemer sender inn gjennom API-et. Serveren sjekker bare komponenter som er synlige for brukeren, i oppgaver som har et layoutsett. Se Validering på serveren.
RequiredValidation slått på som standard.