Validasi Form dengan JavaScript
Memeriksa input sebelum dikirim: email valid, sandi cukup panjang, dan konfirmasi cocok.
Kenapa Validasi di Sisi Klien?
Bayangkan kasir yang menerima uang palsu tanpa mengecek. Validasi JavaScript adalah "pengecekan awal" sebelum data dikirim ke server: memberi feedback instan tanpa menunggu loading. Catatan penting: ini BUKAN pengganti validasi server, hanya lapisan kenyamanan.
Langkah Membangun
HTML: Form registrasi dengan tiga field: nama, email, kata sandi, plus konfirmasi kata sandi. Setiap field punya <small class="error"> kosong di bawahnya sebagai tempat pesan kesalahan.
CSS: Class .error berwarna merah dan tersembunyi default. Input yang salah mendapat class .salah dengan border merah.
JS: Pola validasinya:
- Saat submit, cegah reload dengan
preventDefault(). - Cek satu per satu: nama minimal 3 huruf, email cocok pola regex sederhana, sandi minimal 8 karakter, konfirmasi sama dengan sandi.
- Setiap cek yang gagal: tampilkan pesan di
<small>dan tambah classsalahpada input. - Kalau semua lolos, tampilkan pesan sukses.
Regex email sederhana: /^[^\s@]+@[^\s@]+\.[^\s@]+/. Tidak sempurna tapi cukup untuk latihan.
Kesalahan Umum
- Validasi hanya saat submit sehingga pengguna tidak tahu salahnya di mana sampai menekan tombol (solusi: validasi juga saat input berubah, lihat modul berikutnya).
- Pesan error tidak dihapus saat pengguna memperbaiki input (selalu reset pesan di awal fungsi validasi).
- Mengandalkan validasi JS saja untuk keamanan (server wajib validasi ulang).
export default function App(): JSX.Element { return <h1>Hello world</h1> }
Tantangan
Tantangan: Indikator Kekuatan Sandi
Tambahkan indikator kekuatan sandi di bawah input: bar yang berubah warna (merah = lemah, kuning = sedang, hijau = kuat) berdasarkan panjang dan variasi karakter. Update setiap pengguna mengetik (event input).