label, name, required, typepreventDefaultฟอร์มเป็นจุดรับข้อมูลสำคัญของเว็บ หากออกแบบไม่ดีผู้ใช้อาจกรอกผิดหรือยกเลิกการใช้งาน การตรวจสอบข้อมูลควรชัดเจน ทันเวลา และไม่ทำให้ผู้ใช้รู้สึกผิดโดยไม่จำเป็น
Local Storage ช่วยบันทึกข้อมูลฝั่ง browser แบบง่าย เหมาะกับ preference, draft หรือข้อมูลทดลองใน lab แต่ไม่ควรใช้เก็บข้อมูลลับ เช่น password หรือ token ที่สำคัญ
form.addEventListener("submit", (event) => {
event.preventDefault();
const name = form.elements.name.value.trim();
localStorage.setItem("displayName", name);
});
สร้างฟอร์มสมัครกิจกรรม พร้อม validation และบันทึกข้อมูลลง Local Storage
พัฒนาแบบฟอร์มให้แสดง error message ใกล้ช่องที่ผิด และคงค่าที่เคยกรอกไว้
preventDefault ใช้เพื่ออะไร