Ngữ cảnh: Theo dõi phiếu nhập và xuất vật tư văn phòng của một kho nhỏ
Yêu cầu
- Xây dựng ứng dụng web hoàn chỉnh gồm ít nhất 2 trang (
index.htmlvàgopy.html), đặt trong cấu trúc thư mục nhiều cấp (assets/chứa CSS và JavaScript dùng chung). - Bố cục dựng bằng Flexbox, giao diện thống nhất bằng CSS dùng chung cho mọi trang, không dùng CSS Grid.
- Trang chủ có form thêm phiếu giao dịch với 6 trường thuộc nhiều loại input khác nhau, đầy đủ label chuẩn accessibility (buổi 5).
- Bắt sự kiện submit bằng addEventListener, dùng preventDefault, kiểm tra hợp lệ tối thiểu 3 điều kiện:
- - Tên vật tư không được để trống.
- - Số lượng phải là số dương lớn hơn 0.
- - Ngày giao dịch không được để trống.
- Dữ liệu hợp lệ được thêm vào mảng và hiển thị lại thành bảng bằng vòng lặp (buổi 10, 11).
- Cho phép xoá từng bản ghi khỏi danh sách và cập nhật lại giao diện ngay lập tức.
- Có 1 chỗ dùng
switch(buổi 9) để phân loại theo loại giao dịch, hiển thị thành nhãn trong bảng. - Có 1 khu vực thống kê (
tinhThongKeKhoVatTu()) tính bằng hàm trả về giá trị (buổi 11). - Trang
gopy.htmlcó form nhập liệu riêng, cũng xử lý đầy đủ theo đúng quy trình trên. - Toàn bộ mã JavaScript tổ chức thành Arrow Function, mỗi hàm một nhiệm vụ, tách bạch hàm xử lý dữ liệu
(
assets/data.js) với hàm hiển thị và sự kiện (assets/app.js). - Nộp kèm tài liệu ngắn mô tả cấu trúc thư mục dự án, danh sách hàm và nhiệm vụ, luồng xử lý từ khi người
dùng nhập tới khi dữ liệu hiển thị (xem comment Form Workflow đầu file
assets/app.jstrong đáp án).
Minh hoạ giao diện đáp án
Ràng buộc cấu trúc riêng cho mã đề G
Blockquote nhận xét: Thêm một nhận xét nổi bật bằng blockquote, sau đó có đoạn giải thích ngắn. Không thay ràng buộc này bằng cấu trúc của mã đề khác.