← Quay lại mục lục

Bài 24 — Survey với Conditional Logic

Form khảo sát với fields hiển thị/ẩn theo logic câu trả lời. Decision table + branching + state.

Khó #survey #conditional #branching #state #decision-table

📋 Bài 24: Survey với Conditional Logic

Form khảo sát với fields hiển thị/ẩn theo logic câu trả lời trước đó. Bài tập về conditional fields + branching logic + decision table.

📋 Cấu trúc câu hỏi

#Câu hỏiHiển thị khi
Q1Bạn có đang đi làm? (Yes/No)Luôn hiển thị
Q2Tên công ty?Q1 = Yes
Q3Mức lương (USD)?Q1 = Yes
Q4Bạn có đang tìm việc? (Yes/No)Q1 = No HOẶC Q3 ≥ 0
Q5Vị trí mong muốn?Q4 = Yes
Q6Lý do tìm việc?Q4 = Yes
Q7Email liên hệQ5 đã trả lời (text != "")

🎯 Quy tắc

  1. Field bị ẩn KHÔNG được validate (kể cả required).
  2. Khi user đổi answer làm field con thành ẩn → clear giá trị field con đó.
  3. Field hiển thị động, không phải remove khỏi DOM (CSS hide).
  4. Submit chỉ validate field đang hiển thị.
  5. Submit data chỉ bao gồm field đang hiển thị.

📝 Decision Table cho visibility

Q1Q4 visibleQ5/Q6 visible
YesYes (luôn)Tùy Q4
NoYesTùy Q4
(chưa chọn)NoNo

🎯 Yêu cầu

  1. Test branching: Q1 = Yes → Q2, Q3 hiện. Q1 = No → Q2, Q3 ẩn.
  2. Test cascade: Q4 = Yes → Q5, Q6 hiện. Q4 = No → Q5, Q6 ẩn.
  3. Test data clearing: nhập Q5, đổi Q4 = No → Q5 hidden + cleared. Đổi lại Q4 = Yes → Q5 trống.
  4. Test validation: field hidden không required.
  5. Test submit data: chỉ data đang hiển thị.
  6. Test Q7 phụ thuộc Q5 không rỗng (chuỗi điều kiện).
⚠️ Bug được cài cắm: hidden field vẫn validate, đổi answer không clear data hidden field, submit gửi cả hidden data, condition logic SAI.
🔐

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.