Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Flerlinjes tekstfelt

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-textarea-field> – Flerlinjes tekstfelt / Textarea field

    Om komponenten

    Formål

    Flerlinjes tekstfelt for notater/beskrivelser, med samme etikett-/hjelpetekst-/feilmeldingsoppsett som resten av skjemafelt-familien, pluss en automatisk tegnteller når maxlength er satt.

    Egner seg for

    • Notater, beskrivelser og annen flerlinjes fritekst.
    • Felt med en tegngrense der brukeren bør se hvor mye plass som er igjen mens de skriver.

    Egner seg ikke for

    • Enkeltlinjes tekst som navn, e-post eller søk - bruk <lm-text-field>.
    • Rikt formatert tekst (fet/kursiv/lister) - denne komponenten er bevisst ren, uformatert tekst.

    Bruk

    <script type="module" src="/designsystem/komponenter/skjema/textarea-field/textarea-field.js"></script>
    
    <lm-textarea-field name="notater" label="Notater" rows="2" maxlength="280" help="Valgfritt - vises på oversikten."></lm-textarea-field>

    Prøv selv

    Rediger koden under - resultatet oppdateres live.

    Attributter

    Attributt Type Standard Beskrivelse
    labelstringAttributt/property. Synlig etikett-tekst.
    namestringAttributt. Skjemafelt-navn - komponenten er form-associated og deltar i FormData under dette navnet.
    valuestring""Attributt/property. Feltets gjeldende tekst.
    rowsnumber3Attributt. Antall synlige tekstlinjer - feltet kan fortsatt endres i høyden manuelt (resize: vertical).
    maxlengthnumberAttributt. Videresendes til det interne <textarea> og viser automatisk en "n/maks tegn"-tegnteller under feltet.
    minlengthnumberAttributt. Videresendes til det interne feltet.
    placeholderstringAttributt. Videresendes til det interne feltet.
    requiredbooleanfalseAttributt/property. Gjør feltet obligatorisk og legger til en stjerne i etiketten.
    disabledbooleanfalseAttributt/property. Deaktiverer feltet (arves også automatisk fra en <fieldset disabled>).
    readonlybooleanfalseAttributt. Videresendes til det interne feltet.
    helpstringAttributt. Kort hjelpetekst vist under feltet, koblet via aria-describedby.

    Parts

    Part Beskrivelse
    etikettDet omsluttende <label>-elementet.
    etikett-tekst<span>-en med selve etikett-teksten.
    feltDet interne <textarea>-elementet.
    tegnteller<small>-elementet med "n/maks tegn"-teksten.
    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-textarea-field::part(etikett) {
        /* egne stiler for "Det omsluttende `<label>`-elementet." */
    }
    
    lm-textarea-field::part(etikett-tekst) {
        /* egne stiler for "`<span>`-en med selve etikett-teksten." */
    }
    
    lm-textarea-field::part(felt) {
        /* egne stiler for "Det interne `<textarea>`-elementet." */
    }
    
    lm-textarea-field::part(tegnteller) {
        /* egne stiler for "`<small>`-elementet med "n/maks tegn"-teksten." */
    }
    
    lm-textarea-field::part(hjelpetekst) {
        /* egne stiler for "`<small>`-elementet med hjelpeteksten." */
    }
    
    lm-textarea-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

    Samme etikett-/hjelpetekst-/feilmeldingsoppsett som <lm-text-field>. Tegntelleren er en ren visuell/tekstlig indikator (ikke en egen aria-live-region) siden den oppdateres på hvert tastetrykk og ville vært svært støyende i en skjermleser hvis den ble annonsert live - den vises likevel for seende brukere ved siden av feltet.

    • Samme <label>/aria-describedby-oppsett som <lm-text-field>.
    • Tegntelleren er ren tekst, ikke en aria-live-region, for å unngå støyende oppdateringer på hvert tastetrykk.

    Detaljer

    • Er form-associated og deltar i FormData under sitt name-attributt.
    • rows styrer kun starthøyden - feltet kan fortsatt dras høyere/lavere manuelt (resize: vertical).

    Referanser

    Se også:

    Brukes av:

    • okonomi/lonn/forhandlinger/index.html (argumenter/prestasjoner - ett per linje)

    Avhengigheter: designsystem/komponenter/skjema/skjema-felt-delt.css, designsystem/komponenter/skjema/skjema-felt-delt.js