← Quay lại mục lục

Bài 20 — Multi-step Registration Wizard

Wizard 3 bước với progress bar, validation per-step, back/next, data persistence.

Khó #wizard #multi-step #state #progress #validation

🧙 Bài 20: Multi-step Registration Wizard (3 bước)

Form đăng ký 3 bước với progress bar, Back/Next, validation per-step. Bài tập về state across steps + per-step validation.

📋 Cấu trúc 3 bước

Step 1 — Account Info

  • Username: 4–20 ký tự, alphanumeric
  • Email: format hợp lệ
  • Password: 8–32 ký tự

Step 2 — Personal Info

  • Full name: 2–50 ký tự
  • Phone: 10 chữ số bắt đầu bằng 0
  • Birthday: ≥ 18 tuổi

Step 3 — Preferences

  • Newsletter: checkbox (optional)
  • Plan: radio Free / Premium / Enterprise (required)
  • Terms: checkbox (required)

🎯 Quy tắc

  1. Click "Next" chỉ chuyển bước nếu step hiện tại pass validation.
  2. Click "Back" có giữ lại data đã nhập (không reset).
  3. Progress bar update theo step hiện tại.
  4. Step indicator hiển thị: ① ② ③ với active highlight.
  5. "Submit" chỉ hiển thị ở step 3, validate toàn bộ rồi submit.

📝 Message expected

Trường hợpMessage
Step 1 invalid → click NextHiển thị inline error trên field, không advance
Step 2 invalid → click NextTương tự
Submit thành côngRegistration complete!

🎯 Yêu cầu

  1. Test "Next" khi step chưa pass — có chặn không?
  2. Test "Back" → giá trị có giữ?
  3. Test "Back" rồi "Next" → có re-validate không?
  4. Test progress bar update sau mỗi step.
  5. Test Submit chỉ hiển thị ở step 3.
  6. Test step indicator highlight đúng step.
⚠️ Bug được cài cắm: skip validation, data loss khi back, progress bar update sai, submit hiển thị sai step.
🔐

Vui lòng đăng nhập để nộp bài.

Đăng nhập
🔐

Tab dành cho giảng viên

Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.