Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / komponenter / Tallfelt

  • Forside
  • Turer
  • Økonomi
  • Slides
  • <lm-number-field> – Tallfelt / Number field

    Om komponenten

    Formål

    Tallfelt med min/max/step-validering og en valgfri enhetstekst (kr, %, stk) rett ved siden av verdien, med samme etikett-/hjelpetekst-/feilmeldingsoppsett som resten av skjemafelt-familien.

    Egner seg for

    • Beløp, mengder, varighet og andre numeriske verdier med naturlige grenser (min/max) eller steg (step).
    • Felt der en kort enhet (kr, %, stk, år) bør vises rett ved siden av tallet uten å være en del av selve verdien.

    Egner seg ikke for

    • Rene pengebeløp som skal formateres med tusenskille mens brukeren skriver - bruk <lm-currency-field>.
    • Verdier valgt via et intervall/glidebryter i stedet for tastet inn - bruk <lm-range-field>.
    • Fritekst som tilfeldigvis inneholder tall (telefonnummer, postnummer) - bruk <lm-text-field type="tel">.

    Bruk

    <script type="module" src="/designsystem/komponenter/skjema/number-field/number-field.js"></script>
    
    <lm-number-field name="belop" label="Beløp" suffiks="kr" min="0" step="1" required></lm-number-field>
    <lm-number-field name="rente" label="Rente" suffiks="%" min="0" step="0.01"></lm-number-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 verdi som streng - bruk valueAsNumber-propertyen for et ekte tall.
    suffiksstringAttributt/property. Kort enhetstekst vist til høyre for feltet (f.eks. "kr", "%", "stk") - kun visuell, påvirker ikke selve verdien.
    minnumberAttributt. Videresendes til det interne <input type="number">.
    maxnumberAttributt. Videresendes til det interne feltet.
    stepnumberAttributt. 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 <input type="number">-elementet.
    suffiks<span>-en med enhetsteksten.
    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-number-field::part(etikett) {
        /* egne stiler for "Det omsluttende `<label>`-elementet." */
    }
    
    lm-number-field::part(etikett-tekst) {
        /* egne stiler for "`<span>`-en med selve etikett-teksten." */
    }
    
    lm-number-field::part(felt) {
        /* egne stiler for "Det interne `<input type="number">`-elementet." */
    }
    
    lm-number-field::part(suffiks) {
        /* egne stiler for "`<span>`-en med enhetsteksten." */
    }
    
    lm-number-field::part(hjelpetekst) {
        /* egne stiler for "`<small>`-elementet med hjelpeteksten." */
    }
    
    lm-number-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> - se dens tilgjengelighet-felt for detaljer. Enhetsteksten (suffiks) er kun visuell og ikke lest opp separat av skjermlesere utover selve tegnene; skriv derfor gjerne en fullstendig label (f.eks. "Beløp i kroner") i stedet for å stole på at suffiks alene formidler enheten.

    • Samme <label>/aria-describedby-oppsett som <lm-text-field>.
    • Native <input type="number"> gir piltast-stegning og numerisk mobiltastatur uten egen JS.
    • Enhetsteksten er visuell - skriv en fullstendig label som inkluderer enheten når den er viktig for forståelsen.

    Detaljer

    • Er form-associated og deltar i FormData som streng under sitt name-attributt; bruk valueAsNumber-propertyen fra JS for et ekte tall (unngår manuell Number(...)-konvertering hver gang).

    Referanser

    Se også:

    Brukes av:

    • Ingen ennå - ny komponent.

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