Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Radioknapp-gruppe

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-radio-group-field> – Radioknapp-gruppe / Radio group field

    Om komponenten

    Formål

    En gruppe native radioknapper generert fra en options-liste (samme one-liner-JSON-attributt/JS-property-mønster som <lm-select-field>), pakket i <fieldset>/<legend> for korrekt gruppe-semantikk, med felles hjelpetekst og automatisk feilmeldingsvisning.

    Egner seg for

    • Et lite, alltid synlig sett med 2-5 gjensidig utelukkende valg der alle alternativene bør være synlige samtidig uten å åpne en nedtrekksliste.

    Egner seg ikke for

    • Mer enn ca. 5-6 alternativer, eller når skjermplassen er knapp - bruk <lm-select-field>.
    • Søk-med-forslag mot et stort eller åpent datasett - bruk et <input list>/<datalist>-par, se kobleDatalistSok().
    • Et enkeltstående ja/nei-valg - bruk <lm-checkbox-field>.

    Bruk

    <script type="module" src="/designsystem/komponenter/skjema/radio-group-field/radio-group-field.js"></script>
    
    <lm-radio-group-field name="frekvens" label="Frekvens" required
        options='[{"value":"manedlig","label":"Månedlig"},{"value":"arlig","label":"Årlig"}]'>
    </lm-radio-group-field>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Attributter

    Attributt Type Standard Beskrivelse
    labelstringAttributt/property. Gruppens overordnede etikett, vist som <legend>.
    namestringAttributt. Skjemafelt-navn - komponenten er form-associated og deltar i FormData under dette navnet.
    optionsstring | Array<{value, label, disabled?}>Attributt (JSON-streng, for statiske valg i én linje) eller property (JS-array, for dynamiske/hentede lister).
    valuestringAttributt/property. Verdien til det valgte alternativet.
    requiredbooleanfalseAttributt/property. Krever at ett alternativ velges.
    disabledbooleanfalseAttributt/property. Deaktiverer alle radioknappene i gruppen.
    helpstringAttributt. Kort hjelpetekst vist under gruppen, koblet via aria-describedby.

    Parts

    Part Beskrivelse
    fieldsetDet omsluttende <fieldset>-elementet.
    etikett-tekst<legend>-elementet med gruppens etikett.
    valg-liste<div>-en som inneholder alle radio-radene.
    hjelpetekst<small>-elementet med hjelpeteksten.
    feilmelding<small role="alert">-elementet med valideringsmeldingen.

    Styling med ::part()

    Hver part over kan restyles direkte fra et vanlig, ytre stilark - uten å måtte endre selve komponenten eller duplisere den:

    lm-radio-group-field::part(fieldset) {
        /* egne stiler for "Det omsluttende `<fieldset>`-elementet." */
    }
    
    lm-radio-group-field::part(etikett-tekst) {
        /* egne stiler for "`<legend>`-elementet med gruppens etikett." */
    }
    
    lm-radio-group-field::part(valg-liste) {
        /* egne stiler for "`<div>`-en som inneholder alle radio-radene." */
    }
    
    lm-radio-group-field::part(hjelpetekst) {
        /* egne stiler for "`<small>`-elementet med hjelpeteksten." */
    }
    
    lm-radio-group-field::part(feilmelding) {
        /* egne stiler for "`<small role="alert">`-elementet med valideringsmeldingen." */
    }

    Metoder

    Metode Parametre Returverdi Beskrivelse
    checkValidity()-Videresender til den interne ElementInternals.checkValidity().
    reportValidity()-Videresender til den interne ElementInternals.reportValidity().

    Tilgjengelighet

    Fieldset/legend gir gruppen sin egen tilgjengelighetsnavn-kontekst. Radioknappenes gruppering og pil-tastnavigasjon er nettleserens native oppførsel basert på delt name-attributt. Feilmelding vises som role="alert" etter at brukeren har samhandlet med gruppen eller forsøkt å sende inn skjemaet.

    • <fieldset>/<legend> gir gruppen sin egen tilgjengelighetsnavn-kontekst, uavhengig av de individuelle radio-etikettene.
    • Radioknappenes gruppering og pil-tastnavigasjon er nettleserens native oppførsel.

    Detaljer

    • Er form-associated og deltar i FormData under sitt name-attributt med verdien til det valgte alternativet.
    • Det interne, delte radio-name-attributtet er tilfeldig generert per instans og har ingen sammenheng med komponentens name-attributt - det brukes kun til å gruppere de interne radioknappene mot hverandre.

    Referanser

    Se også:

    Brukes av:

    • Ingen ennå - ny komponent.

    Avhengigheter: designsystem/komponenter/skjema/skjema-felt-delt.css, designsystem/komponenter/skjema/skjema-felt-delt.js, designsystem/funksjoner/sikkerhet/escape-html/