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 |
|---|---|---|
form | HTMLFormElement | Skjemaet 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.jsturer/js/features/budsjett/budsjett.jsturer/js/pages/onboarding.js
Avhengigheter: Ingen