Event và Form trong JavaScript
Từ một trang web tĩnh đến một trang web biết lắng nghe, phản hồi và xử lý dữ liệu người dùng — đây là bước nền quan trọng để học DOM, mini project và các form thực tế.
Bài học này tập trung vào cách JavaScript bắt thao tác của người dùng và phản hồi lại thông qua event và form. Nhờ phần kiến thức này, trang web không còn chỉ hiển thị nội dung tĩnh mà có thể tương tác trực tiếp với người dùng.
Nếu chưa nắm được nội dung này, học viên sẽ khó học tiếp các phần như kiểm tra form đăng ký/đăng nhập, thêm dữ liệu vào danh sách, xử lý nút bấm hay các mini project quản lý thông tin đơn giản.
- checkHiểu event là gì và form hoạt động ra saoNhận ra vì sao muốn web tương tác được thì phải biết lắng nghe hành động của người dùng.
- checkNhận diện các sự kiện thường gặpPhân biệt được click, input, change, submit và biết khi nào nên dùng từng loại.
- checkGắn sự kiện và lấy dữ liệu đúng cáchSử dụng addEventListener(), đọc dữ liệu bằng .value, chặn reload bằng preventDefault().
- checkViết được các bài tương tác cơ bảnLàm được nút tăng giảm số, nhập tên để hiện lời chào, form đăng ký đơn giản và kiểm tra dữ liệu rỗng.
- checkTránh các lỗi rất hay gặpKhông nhầm .value với .innerText, không quên preventDefault(), và biết dùng trim() khi kiểm tra rỗng.
Event là hành động xảy ra trên trang web: người dùng bấm nút, nhập dữ liệu, gửi form, rê chuột hoặc thay đổi giá trị. Khi sự kiện xảy ra, JavaScript có thể lắng nghe và phản hồi lại.
const btn = document.getElementById("btnGui");
btn.addEventListener("click", function () {
console.log("Bạn vừa bấm nút");
});Với các ô nhập, dữ liệu người dùng nhập vào được lấy bằng .value. Còn nếu muốn thay đổi nội dung đang hiển thị trên thẻ p, div, span thì dùng .innerText.
const oNhap = document.getElementById("hoTen");
const ketQua = document.getElementById("ketQua");
const duLieu = oNhap.value;
ketQua.innerText = "Xin chào " + duLieu;Với form, sự kiện quan trọng nhất là submit. Khi bấm nút có type="submit", trình duyệt thường tải lại trang. Vì vậy ta thường dùng event.preventDefault() để chặn hành vi mặc định trước khi kiểm tra dữ liệu.
const form = document.getElementById("formThongTin");
const ketQua = document.getElementById("ketQua");
form.addEventListener("submit", function (event) {
event.preventDefault();
const hoTen = document.getElementById("hoTen").value;
if (hoTen.trim() === "") {
ketQua.innerText = "Bạn chưa nhập họ tên";
} else {
ketQua.innerText = "Xin chào " + hoTen;
}
});const nut = document.getElementById("btnChao");
nut.addEventListener("click", function () {
alert("Xin chào");
});const nut = document.getElementById("btnHien");
const ketQua = document.getElementById("ketQua");
nut.addEventListener("click", function () {
const ten = document.getElementById("hoTen").value;
ketQua.innerText = "Xin chào " + ten;
});const formThongTin = document.getElementById("formThongTin");
const ketQua = document.getElementById("ketQua");
formThongTin.addEventListener("submit", function (event) {
event.preventDefault();
const hoTen = document.getElementById("hoTen").value;
if (hoTen.trim() === "") {
ketQua.innerText = "Bạn chưa nhập họ tên";
} else {
ketQua.innerText = "Xin chào " + hoTen;
}
});Title
Desc