TL;DR
- Flere checkboxes kan dele samme
name. formData.get()er ikke nok, hvis flere værdier kan være valgt.formData.getAll()returnerer en liste med alle værdierne.- Listen kan samles til tekst med
.join(", ").
Hvis du kun husker én ting: Når flere felter deler samme name, er formData.getAll() den rigtige måde at samle værdierne op på.
Hvorfor getAll()?
Med tekstfelter og radio buttons henter du ofte én værdi ad gangen. Men checkboxes kan give flere værdier på samme tid.
Derfor bruger man getAll() i stedet for get():
optionsOutput.textContent = formData.getAll("my_options").join(", ");Det betyder:
- hent alle de valgte værdier med
name="my_options" - saml dem til én tekststreng
- vis dem i outputfeltet
Tænk på name som gruppens nøgle
Det er name, der binder checkboxene sammen som en gruppe.
Hvis tre checkboxes alle har:
name="language"så kan du hente dem samlet med:
formData.getAll("language")Det returnerer en liste (også kaldet et Array), fx ["HTML", "CSS"].
Gør listen læsbar
Når værdierne skal vises for brugeren, er en rå liste ikke særlig pæn. Med .join() kan du bestemme, hvordan værdierne skal vises - i dette tilfælde adskilt af komma og mellemrum:
langsOutput.textContent = formData.getAll("language").join(", ");Så bliver outputtet til noget i stil med
HTML, CSS, JavaScripti stedet for
HTML,CSS,JavaScriptDet er en lille ting, men det gør resultatet langt lettere at læse.
Øvelse
Her arbejder du specifikt med checkbox-værdier og getAll():