Sist endret: 13. feb. 2025

Avkrysningsbokser

Inndataelement som lar brukeren velge eller fjerne valg for ett eller flere alternativer.

🚧 Denne dokumentasjonen er under oppdatering.

Bruk

Avkrysningsbokser brukes ofte i skjemaer for å samle input fra brukeren, slik at de kan velge ett eller flere alternativer fra en liste.

Bruk avkrysningsbokser når:

  • Brukere kan velge flere alternativer fra en liste.
  • Det må gjøres et eksplisitt valg for å bruke innstillingene (f.eks. bekrefte at brukeren har lest et dokument).

Anatomi

  1. Overskrift - Spørsmål eller instruksjon.
  2. Avkrysningsboks - Valgkontrollen.
  3. Etikett - Tekstetikett knyttet til avkrysningsboksen.
  4. Hjelpetekst-knapp - Om man trykker på den dukker en hjelpetekstboks.

Stil

  • Avkrysningsbokser bør alltid ha en tilknyttet etikett på høyre side.

Beste praksis

  • Avkrysningsbokser med deaktivert valg bør unngås. Hvis et alternativ er utilgjengelig bør det fjernes og en forklaring gitt for hvorfor alternativet mangler.

Veiledning for innhold

  • Hold etikettene korte og beskrivende.
  • Begynn alle etiketter med stor bokstav.
  • Ikke inkluder tegnsetting etter etikettene.

Relatert

  • For en mer kompakt måte å vise flere alternativer med flervalg, bruk MultipleSelect.
  • Hvis brukeren bare kan velge ett alternativ fra en liste, bruk RadioButtons.
  • For en mer kompakt måte å vise flere alternativer med enkeltvalg, bruk en rullegardinmeny.

Egenskaper

Følgende er en liste over tilgjengelige egenskaper for Avkrysningsbokser. Listen er automatisk generert basert på komponentens JSON schema (se link).

Vi oppdaterer for øyeblikket hvordan vi implementerer komponenter. Listen over egenskaper kan derfor være noe unøyaktig.

Failed to retrieve JSON schema for ‘Checkboxes’. Make sure the component schemaname is spelled correctly.

Konfigurering

Vi oppdaterer for øyeblikket Altinn Studio med flere muligheter for innstillinger! Dokumentasjonen oppdateres fortløpende, men det kan være flere innstillinger tilgjengelig enn det som beskrives her og noen innstillinger kan være i betaversjon.

Legg til komponent

    Du kan legge til en komponent i Altinn Studio Designer ved å dra den fra komponent-listen til sideområdet. Når du velger komponenten, vises innstillingspanelet for den.

    Grunnleggende komponent:

    App/ui/layouts/{page}.json
    {
      "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/layout/layout.schema.v1.json",
      {
        "data": {
          "layout": [
            {
              "id": "Image-id",
              "type": "Image",
              "image": {
                "src": {},
                "width": "100%",
                "align": "center"
              }
            }
          ]
        }
      }
    }
    

    Tekst (textResourceBindings)

      Du kan opprette en ny tekst ved å klikke på pluss-tegnet eller velge en eksisterende ved å klikke på forstørrelsesglasset. Se Legge til og endre tekster i en app for mer info.

      Tekst kan legges til direkte som en tekststreng eller ved å oppgi nøkkelen til en tekstressurs.

      App/ui/layouts/{page}.json
      {
        "id": "komponent-id",
        "type": "Checkboxes",
        "textResourceBindings": {
                "title": "",
                "description": "",
                "help": "",
                "shortName": "",
                "tableTitle": ""
              }
      }
      
      1. Ledetekst (textResourceBindings.title): Overskrift med spørsmål eller instruksjon.
      2. Beskrivelse (textResourceBindings.description): Tekst for ytterligere beskrivelse eller utdyping.
      3. Hjelpetekst (textResourceBindings.help): Når hjelpetekst er fylt ut vil et spørsmålstegn vises ved siden av ledeteksten. Klikk på spørsmålstegnet for å vise teksten som en popup. Kan brukes til forklaring, eksempler, brukssituasjoner osv.
      • Kortnavn (textResourceBindings.shortName): Overstyrer tittelen til komponenten som brukes i den standard required valideringsmeldingen.
      • Tittel i tabell (textResourceBindings.tableTitle): Overstyrer tittelen til komponenten som blir brukt i kolonneheader når komponenten befinner seg i repeterende grupper.

      Datamodell

      For at det skal være mulig å lagre og manipulere informasjonen må komponenten kobles til et felt i en datamodell. Verdiene til alternativene lagres som streng.

        Velg feltet du ønsker å koble komponenten til fra nedtrekksmenyen. Hvis det ikke er noen felter tilgjengelig må du først laste opp en datamodell.

        App/ui/layouts/{page}.json
        {
          "id": "komponent-id",
          ...
          "dataModelBindings": {
            "simpleBinding": "MyDataModel.SomeField"
            }
        }
        

        Legge til alternativer

        Alternativer (options) kan legges til manuelt eller ved hjelp av kodelister.

        Manuelt (options)

          Velg “Manuelt” og klikk “Legg til flere” for å til et nytt alternativ. Velg eller opprett ny tekst for å legge til etikett (label).

          Alternativet kommer med en forhåndsutfylt verdi (value), som er dataen som lagres når brukeren gjør et valg. Endre verdien til det som passer.

          App/ui/layouts/{page}.json
          {
            "id": "komponent-id",
            ...
            "options": [
                    {
                      "label": "Alternativ 1",
                      "value": "1"
                    }
                  ]
          }
          

          Kodeliste (optionsId)

          En kodeliste er en forhåndsdefinert liste med alternativer.

            For å legge til alternativer fra en kodeliste, velg ‘Kodeliste’ og angi en kodeliste ID. For å bruke en egendefinert (dynamisk) kodeliste, klikk på “Bytt til egendefinert kodeliste”.


            Om du ønsker å sikre dynamiske kodelister kan du huke av for dette:

            App/ui/layouts/{page}.json
            {
              "id": "komponent-id",
              ...
              "optionsId": "land",
              "secure": true
            }
            

            Kilde (source)

            En måte å legge til alternativer er å koble komponenten til en kodeliste basert på skjemadata lagret i selve appen. Dette gjør du ved å legge til en kilde (source); se dokumentasjon for hvordan dette konfigureres.

              Innstillinger i Altinn Studio.

              App/ui/layouts/{page}.json
              {
                "id": "komponent-id",
                ...
                "source": {
                  "group": "some.group",
                  "label": "dropdown.label",
                  "value": "some.group[{0}].someField",
                  "description": "",
                  "helpText": ""
                }
              }
              ...
              

              Dokumentasjon for kodelister

              Feltet skal være skrivebeskyttet (readOnly)

              Egenskapen readOnly deaktiverer komponenten når huket av (true).

                App/ui/layouts/{page}.json
                {
                  "id": "komponent-id",
                  ...
                  "readOnly": true
                }
                

                Eksempel skrivebeskyttet komponent

                Feltet skal være påkrevd (required)

                Krever at det gjøres et valg når aktivert (true), det vil da vises en stjerne ved overskriften.

                  App/ui/layouts/{page}.json
                  {
                    "id": "komponent-id",
                    ...
                    "required": false
                  }
                  

                  Visning (layout)

                  Viser alternativene som kolonne (column) (standard for mer enn to alternativer) eller rad (row) (standard for opp til to alternativer).

                    App/ui/layouts/{page}.json
                    {
                      "id": "komponent-id",
                      ...
                      "layout": "row"
                    }
                    

                    Forhåndsvalgt verdi (preselectedOptionsIndex)

                    Setter en forhåndsvalgt verdi. Alternativene er nullindeksert, så det første alternativet er 0, det andre 1, osv.

                      App/ui/layouts/{page}.json
                      {
                        "id": "komponent-id",
                        ...
                        "preselectedOptionsIndex": 0
                      }
                      

                      Oppsummering (renderAsSummary)

                      Indikerer om feltet skal være med i oppsummering eller ikke (standard: false).

                        {
                          "id": "komponent-id",
                          ...
                          "renderAsSummary": false
                        }
                        

                        Feltet skal skjules (hidden)

                        Indikerer om feltet skal skjules eller ikke (standard: false).

                          App/ui/layouts/{page}.json
                          {
                            "id": "komponent-id",
                            ...
                            "hidden": false
                          }
                          

                          Sideskift (pageBreak)

                          Indikerer om en sideskift skal legges til før eller etter komponenten. Kan være enten: auto (standard), always (alltid) eller avoid (unngå).

                            App/ui/layouts/{page}.json
                            {
                              "id": "komponent-id",
                              ...
                              "pageBreak": {
                                "breakBefore": "auto",
                                "breakAfter": "auto"
                              }
                            }
                            

                            Horisontal justering med grid

                            Innstillinger for komponenten er ikke støttet i skjemaeditor ennå, men kan konfigureres manuelt.

                            grid-egenskapen kontrollerer horisontal justering av komponenten basert på en layout med 12 kolonner. Elementer tildeles brøkdeler av 12 som bestemmer deres bredde i forhold til skjermbredden. I eksemplet nedenfor setter vi komponentens bredde til 2/12 av skjermbredden for alle skjermstørrelser (fra xs og opp).

                              App/ui/layouts/{page}.json
                              {
                                "id": "komponent-id",
                                ...
                                "grid": {
                                    "xs": 2,
                                  }
                              }
                              

                              Du kan også bruke grid for å sidestille komponenter.

                              Se Sidestilte komponenter (grid) for detaljer og eksempler.