Sist endret: 20. okt. 2026

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 opp shortName per 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.

I v9 er RequiredValidation slått på som standard.