detfaellesdesignsystem / dkfds-components

Styling og komponenter
Other
44 stars 13 forks source link

Karakterbegrænsning / CharacterLimit virker ikke efter hensigten #254

Open jkruse opened 1 week ago

jkruse commented 1 week ago

Bekskriv fejlen (Describe the bug) Hvis jeg i DKFDS 10 fra en DOMContentLoaded event kalder DKFDS.init(), og der på siden f.eks. er textareas med indhold, og en data-maxlength attribut (og øvrig markup som beskrevet her: https://designsystem.dk/komponenter/inputfelter/#karakterbegraensning-kode), så vises en forkert tekst under feltet i Firefox. Hvis data-maxlength="100" f.eks. så vises "Du har 100 tegn tilbage" i stedet for det reelle antal tegn der er tilbage (fordi feltet ikke er tomt).

Genskab fejlen (To Reproduce) Sådan genskabes fejlen (Steps to reproduce the behavior):

  1. Lav et input felt med karakterbegrænsning som beskrevet på https://designsystem.dk/komponenter/inputfelter/#karakterbegraensning-kode, og sørg for at feltet har indhold når siden loader
  2. Kald DKFDS.init() fra en DOMContentLoaded event handler
  3. Åben siden i Firefox

Sådan burde det fungere (Expected behavior) Teksten under feltet burde vise det korrekte antal tegn tilbage, altså [værdien af data-maxlength] - [antal tegn i feltet].

Desktop - udfyld venligst følgende (please complete the following information):

Supplerende oplysninger (Additional context) Fejlen skyldes at character-limit.js forsøger at opdatere den initielle tekst i feltet ved at registrere 'pageshow' og 'DOMContentLoaded' event handlers. Men 'pageshow' fyrer FØR 'DOMContentLoaded' i Firefox, og 'DOMContentLoaded' er jo allerede fyret på det tidspunkt hvor 'init' afvikles.

detfaellesdesignsystem commented 1 week ago

@jkruse Tak for din henvendelse. Vi har oprettet en sag på det.

Med venlig hilsen Det Fælles Designsystem