← Niveau 2 – Troldmand

Lektion 7 af 8 ⏱ 30 minutter

En formular, der fanger fejl

En besøgende efterlader dig en besked, og formularen peger høfligt ud, når noget mangler.

Vis mig: en formular i HTML

En formular er et sæt felter, besøgende skriver i:

<form id="message-form">
  <label for="name">Your name</label>
  <input id="name" type="text" placeholder="Jake">

  <label for="message">Message</label>
  <textarea id="message" placeholder="Hi! You have an awesome website."></textarea>

  <button type="submit">Send message</button>
</form>

<p id="confirmation"></p>

Og lidt CSS for at gøre den pæn:

form {
  display: flex;
  flex-direction: column;   /* fields stacked vertically */
  gap: 8px;
  max-width: 400px;
}

input, textarea {
  font: inherit;
  padding: 10px;
  border: 1px solid #d6d3d1;
  border-radius: 8px;
}

.error {
  border-color: #dc2626 !important;
  background-color: #fee2e2;
}

flex-direction: column drejer flexbox fra sidelæns til opret: børn stilles op én under den anden.

Vis mig: tjek i JavaScript

const form = document.getElementById("message-form");
const name = document.getElementById("name");
const message = document.getElementById("message");
const confirmation = document.getElementById("confirmation");

form.addEventListener("submit", (event) => {
  event.preventDefault();   // stop the normal submit (the page would reload)

  // Clear old error marks
  name.classList.remove("error");
  message.classList.remove("error");

  // Check that fields are filled in
  if (name.value.trim() === "") {
    name.classList.add("error");
    confirmation.textContent = "You forgot your name. 🙂";
    return;
  }

  if (message.value.trim() === "") {
    message.classList.add("error");
    confirmation.textContent = "So what do you want to tell me? Write something.";
    return;
  }

  // Everything's fine
  confirmation.textContent = "Thanks for the message, " + name.value + "! 💌";
  form.reset();   // empty the fields
});

Nye ting:

💡

Hvor går beskeden hen? Ingen steder endnu – vi har ingen server til at modtage den. Vi tjekker bare beskeden og siger tak. Men husk dette sted: i niveau 3 bygger vi en rigtig server med en gæstebog og forbinder denne formular til den. Så bliver beskeder faktisk gemt!

Nu er det din tur 💪

Tilføj en formular til din hjemmeside, der giver mening for dit projekt, med inputtjek:

⚠️

En sikkerhedsvane hos professionelle: stol aldrig på, hvad en bruger skriver. Tjek det altid – et tomt felt, en meningsløs alder, tekst der er for lang. I dag gør du det af høflighed; i rigtige applikationer er det første forsvarslinje mod angribere.

Tjek dig selv: Indsendelse af en tom formular markerer feltet rødt og viser en besked. En udfyldt formular siger tak ved navn og rydder sig selv. Høflig, venlig, professionel.

Det tager du med fra denne lektion