💡 Tôi đã chuẩn bị sẵn trình soạn thảo bên dưới bài viết. Bạn có thể thử nghiệm thoải mái!

Cập nhật: 31 tháng 5 năm 2026

Ứng dụng TODO | Hướng dẫn và bài tập

📌

Kết luận

Kết hợp nhiều kỹ năng để tạo ra tính năng thêm TODO

📝 Mã thực tế tại đây
form.addEventListener('submit', (e) => {
  e.preventDefault(); // Ngăn trang web bị tải lại
  const li = document.createElement('li');
  li.textContent = input.value;
  list.appendChild(li);
  input.value = ''; // Xóa sạch ô nhập liệu
});

Tổng kết

- e.preventDefault() là bắt buộc khi xử lý form bằng JavaScript - Quy trình: Lấy giá trị -> Tạo thẻ -> Gắn vào danh sách -> Reset ô nhập

Hãy thử trong phần bài tập

Hãy hoàn thiện tính năng thêm mục mới vào danh sách nhé.

🧪 Thử nghiệm tại đây

Bạn có thể viết mã thực tế vào trình soạn thảo bên dưới và xem ngay kết quả. Đừng sợ làm hỏng, bạn có thể thử lại bao nhiêu lần tùy thích.

Thử ngay

■ Bài tập thực hành

Khi nhấn nút, hãy thêm nội dung từ ô input vào danh sách ul.

Gợi ý khi gặp khó khăn

Kết hợp lấy giá trị input và tạo phần tử mới.

30pt

Ứng dụng TODO

Khi nhấn nút, hãy thêm nội dung từ ô input vào danh sách ul.

Nhấp vào lỗi để đánh dấu dòng. ✕=lỗi ⚠=cảnh báo ›=log.

Lộ trình học · Toàn bộ bài giảng

Đi sâu bài tập này

"Ứng dụng TODO" là bài JavaScript (DOM) mức 中級. Khi nhấn nút, hãy thêm nội dung từ ô input vào danh sách ul. Chạy ngay trên trình duyệt với kiểm tra tự động.

Đây là bài tập thực hành kết hợp nhiều kỹ năng DOM cơ bản. Mẫu tương tự xuất hiện trong review code và UI thực tế.

Kết hợp với lộ trình project. Bài #69 củng cố kỹ năng project.

Quy trình từng bước

  1. Đọc bài giải thích và nắm mục tiêu "Ứng dụng TODO"
  2. Kiểm tra cột JavaScript (DOM) và bắt đầu từ mã mẫu
  3. Mở gợi ý nếu bí, so sánh với lời giải
  4. Bấm Chạy để xem preview/console
  5. Hệ thống kiểm tra có chứa: addEventListener, appendChild, createElement.
  6. Sau khi đúng, làm bài trước/sau trong cùng danh mục

Cách đọc mã giải

JavaScript dùng: document.getElementById, document.createElement, addEventListener. Kiểm tra typo và await. Giải thích: Đây là bài tập thực hành kết hợp nhiều kỹ năng DOM cơ bản. Gợi ý: Kết hợp lấy giá trị input và tạo phần tử mới.

Ứng dụng thực tế & nghề nghiệp

Todo, counter, timer là bài live-coding và portfolio mạnh.

Lỗi thường gặp

  • Bỏ qua gợi ý: Kết hợp lấy giá trị input và tạo phần tử mới.
  • ID trong getElementById phải khớp từng ký tự với thuộc tính id
  • Chỉ giữ state trên DOM
  • Đăng ký listener hai lần
  • Lưu dữ liệu nhạy cảm vào localStorage

Xử lý sự cố

Preview không đổi sau khi chạy
Kiểm tra bạn sửa đúng cột JavaScript (DOM) và đã bấm Chạy.
Đúng nhưng không pass
Hệ thống kiểm tra có chứa: addEventListener, appendChild, createElement. Kiểm tra typo và thẻ đóng.
Lỗi trên console
Mở DevTools Console, kiểm tra ngoặc và dấu ngoặc kép.
Khó gõ trên điện thoại
Dùng màn ngang hoặc mở cùng URL trên PC.

Mẹo phỏng vấn & portfolio

  • Giải thích kỹ thuật trong "Ứng dụng TODO" bằng lời của bạn trong 30 giây
  • Luyện mô tả từng dòng mã giải trên bảng trắng
  • Chuẩn bị một phương án thay thế và lý do chọn cách hiện tại

Thuật ngữ

localStorage
Lưu key-value lâu dài trên trình duyệt.
setTimeout
Chạy hàm sau khoảng thời gian.
State
Dữ liệu app như bộ đếm.

Từ khóa trên trang này

Trang này là bài tập miễn phí về Ứng dụng TODO cho từ khóa: Ứng dụng TODO, project, 中級, document.getElementById, document.createElement, addEventListener, project todo.

Công cụ liên quan

Lộ trình học

Lộ trình học →

Bài tập liên quan

Câu hỏi thường gặp (FAQ)

Ứng dụng TODO có miễn phí không?

Bài tập này hoàn toàn miễn phí và chạy ngay trên trình duyệt. Không cần đăng ký hay thẻ tín dụng.

Độ khó và thời gian?

"Ứng dụng TODO" ở mức "中級". Đọc hướng dẫn trước; người mới thường hoàn thành trong 30 phút. Mỗi bài khoảng 5–15 phút. Dùng gợi ý, sau đó xem lời giải nếu bí.

Sau khi đúng làm gì?

Sau khi đúng, dùng liên kết bài tiếp theo. Hoàn thành danh mục rồi sang lộ trình học.

Làm trên điện thoại được không?

Chạy trên trình duyệt di động, nhưng gõ mã trên máy tính tiện hơn.

Bài tập khác ở đâu?

Danh sách bài tập: /vi/learn/ có bộ lọc danh mục.

Điểm cần nhớ trong "Ứng dụng TODO"?

Đây là bài tập thực hành kết hợp nhiều kỹ năng DOM cơ bản. Gợi ý: Kết hợp lấy giá trị input và tạo phần tử mới.

Vị trí danh mục project?

Todo, counter, timer là bài live-coding và portfolio mạnh.

Các bước cụ thể cho "Ứng dụng TODO"?

1. Đọc bài giải thích và nắm mục tiêu "Ứng dụng TODO"
2. Kiểm tra cột JavaScript (DOM) và bắt đầu từ mã mẫu
3. Mở gợi ý nếu bí, so sánh với lời giải
4. Bấm Chạy để xem preview/console
5. Hệ thống kiểm tra có chứa: addEventListener, appendChild, createElement.
6. Sau khi đúng, làm bài trước/sau trong cùng danh mục

Cách đọc mã giải?

JavaScript dùng: document.getElementById, document.createElement, addEventListener. Kiểm tra typo và await.

Giải thích: Đây là bài tập thực hành kết hợp nhiều kỹ năng DOM cơ bản.

Gợi ý: Kết hợp lấy giá trị input và tạo phần tử mới.

Khi gặp sự cố?

Preview không đổi sau khi chạy → Kiểm tra bạn sửa đúng cột JavaScript (DOM) và đã bấm Chạy.
Đúng nhưng không pass → Hệ thống kiểm tra có chứa: addEventListener, appendChild, createElement. Kiểm tra typo và thẻ đóng.
Lỗi trên console → Mở DevTools Console, kiểm tra ngoặc và dấu ngoặc kép.
Khó gõ trên điện thoại → Dùng màn ngang hoặc mở cùng URL trên PC.

Liên quan nghề nghiệp?

Giải thích kỹ thuật trong "Ứng dụng TODO" bằng lời của bạn trong 30 giây Luyện mô tả từng dòng mã giải trên bảng trắng Chuẩn bị một phương án thay thế và lý do chọn cách hiện tại