Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / funksjoner / Vent på skjemafelt

  • Forside
  • Turer
  • Økonomi
  • Slides
  • ventPaSkjemaFelt – Vent på skjemafelt / Wait for form fields

    Om funksjonen

    Formål

    Skjemafelt-komponenter som lm-text-field/lm-date-field/lm-select-field er form-associated custom elements som registrerer seg selv asynkront. Setter man en verdi på et slikt felt rett ved sideinnlasting - før elementet faktisk er oppgradert - skjer ingenting, uten noen feilmelding før man prøver å lese .value og får en TypeError fordi form.elements.<navn> ennå ikke finnes. Denne funksjonen venter eksplisitt til alle feltene i skjemaet er registrert, slik at prefylling ved sideinnlasting (i motsetning til ved en senere brukerhandling, der elementene alltid er rukket å bli oppgradert) blir trygg.

    Egner seg for

    • Prefylling av et skjema (f.eks. en redigeringsside) med verdier rett ved sideinnlasting, før noen brukerhandling har skjedd.

    Egner seg ikke for

    • Verdier satt inne i en click-/submit-handler - der er elementene alltid allerede oppgradert, og kallet er unødvendig.

    Signatur(er)

    ventPaSkjemaFelt(form: HTMLFormElement) => Promise<void>

    Parameter Type Beskrivelse
    formHTMLFormElementSkjemaet med feltene som skal ventes på.

    Returnerer: Løser når alle feltenes tag-navn er registrert via customElements.whenDefined.

    import {ventPaSkjemaFelt} from "/designsystem/funksjoner/dom/vent-pa-skjemafelt/vent-pa-skjemafelt.js";
    
    const form = document.getElementById("rediger-tur-form");
    await ventPaSkjemaFelt(form);
    form.elements.navn.value = trip.name;

    Tilgjengelighet

    Ingen tilgjengelighetspåvirkning - venter kun på registrering før verdier settes, endrer ikke DOM-struktur eller fokus.

    Referanser

    Se også:

    • ../dialog/index.html - En annen liten DOM-hjelper som typisk kobles til de samme skjemaene i dialoger.

    Brukes av:

    • turer/js/features/header/header.js
    • turer/js/features/budsjett/budsjett.js
    • turer/js/pages/onboarding.js

    Avhengigheter: Ingen