← Level 2 – Wizard

Pelajaran 7 dari 8 ⏱ 30 menit

Suatu bentuk yang menangkap kesalahan

Seorang pengunjung meninggalkan pesan kepada kamu, dan formulir tersebut dengan sopan menunjukkan jika ada sesuatu yang hilang.

Tunjukkan pada saya: formulir dalam HTML

Formulir adalah sekumpulan bidang yang diketik pengunjung:

<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>

Dan sedikit CSS agar terlihat bagus:

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;
}

arah fleksibel: kolom mengubah kotak fleksibel dari samping menjadi tegak: anak-anak berbaris satu di bawah yang lain.

Tunjukkan pada saya: memeriksanya dalam 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
});

Barang baru:

💡

Ke mana pesannya pergi? Belum ada tempat – kami tidak memiliki server untuk menerimanya. Kami hanya memeriksa pesannya dan mengucapkan terima kasih. Tapi ingat tempat ini: di Level 3, kita akan membangun server nyata dengan buku tamu dan menghubungkan formulir ini ke dalamnya. Maka pesan akan benar-benar disimpan!

Giliran kamu 💪

Tambahkan formulir ke situs web kamu yang sesuai untuk proyek kamu, dengan pemeriksaan masukan:

⚠️

Kebiasaan keamanan para profesional: jangan pernah mempercayai apa yang diketik pengguna. Selalu centang – kolom kosong, usia tidak masuk akal, teks terlalu panjang. Hari ini kamu melakukannya demi kesopanan; dalam aplikasi nyata, ini adalah garis pertahanan pertama melawan penyerang.

Periksa diri kamu: Mengirimkan formulir kosong akan menandai bidang tersebut dengan warna merah dan menampilkan pesan. Formulir yang sudah diisi mengucapkan terima kasih berdasarkan nama dan dibersihkan dengan sendirinya. Sopan, ramah, profesional.

Apa yang bisa diambil dari pelajaran ini