Latihan 1 dari materi Form Actions SvelteKit di Svelte — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Buat login dengan form action SvelteKit. Editor ini berisi tiga file, masing-masing dimulai baris yang menyebut path-nya:
src/routes/login/+page.svelte: halaman login. Sudah menampilkan form.error kalau ada.
src/routes/login/+page.server.js: action default yang sudah membaca email dan password dari request.formData().
Di halaman login, tulis <form method="POST"> berisi <input name="email" type="email" value={form?.email ?? ""} />, <input name="password" type="password" />, dan <button>Login</button>.
Di action-nya, kalau password !== "rahasia123", kembalikan fail(400, { email, error: "Password salah" }). Isinya jadi form di halaman, jadi email yang sudah diketik tetap ada.
Editor ini menjalankan app-nya seperti SvelteKit: form POST mengirim isiannya ke action di +page.server.js, dan baris abu-abu di atas menunjukkan alamatnya. Server-nya gak ada sungguhan; action-nya jalan di pratinjau.
Yang dicek:
Ada <form> dengan input email (type email), input password (type password), dan tombol.
Dengan password salah, sesudah Login: p.error berbunyi Password salah, dan kolom email masih berisi email yang diketik.
Dengan password rahasia123, sesudah Login: alamatnya jadi /dashboard.
Kodenya memakai method="POST", export const actions, fail(400, dan redirect(303.
Hint
Form POST mengirim isiannya ke action di +page.server.js. Yang dikembalikan action jadi prop form di halaman; redirect memindahkan pengguna ke halaman lain.
Di action: if (password !== "rahasia123") { return fail(400, { email, error: "Password salah" }) }, lalu redirect(303, "/dashboard").