Bài 08 - Dom
Mục tiêu bài học
- Hiểu cách lấy dữ liệu từ các thẻ form: input, radio, checkbox, select
- Biết thao tác DOM để xử lý dữ liệu form
- Thực hành xử lý sự kiện
submit
,input
,change
- Hiểu cách ngăn reload trang khi submit form
- Biết validate (kiểm tra hợp lệ) dữ liệu người dùng nhập
Nội dung chính
1. Các thành phần cơ bản trong Form HTML
<form id="myForm">
<input type="text" name="username" placeholder="Tên người dùng" />
<input type="password" name="password" placeholder="Mật khẩu" />
<input type="checkbox" name="agree" /> Đồng ý
<button type="submit">Đăng nhập</button>
</form>
2. Bắt sự kiện submit
và lấy dữ liệu
let form = document.getElementById("myForm");
form.addEventListener("submit", function(e) {
e.preventDefault(); // Ngăn reload trang
let username = form.username.value;
let password = form.password.value;
let agreed = form.agree.checked;
console.log(username, password, agreed);
});
3. Lấy dữ liệu từ radio, select, checkbox
<select id="city">
<option value="hanoi">Hà Nội</option>
<option value="hcm">TP.HCM</option>
</select>
let selectedCity = document.getElementById("city").value;
<input type="radio" name="gender" value="male" checked /> Nam
<input type="radio" name="gender" value="female" /> Nữ
let gender = document.querySelector('input[name="gender"]:checked').value;
4. Validate dữ liệu người dùng nhập
if (username.trim() === "") {
alert("Vui lòng nhập tên người dùng");
return;
}
if (password.length < 6) {
alert("Mật khẩu phải từ 6 ký tự trở lên");
return;
}
5. Hiển thị dữ liệu ra giao diện
document.getElementById("result").innerText = `Xin chào ${username}`;
6. Ví dụ đầy đủ: Form Đăng ký đơn giản
<form id="signupForm">
<input name="email" placeholder="Email">
<input name="password" type="password" placeholder="Mật khẩu">
<button>Đăng ký</button>
</form>
<p id="result"></p>
<script>
let form = document.getElementById("signupForm");
form.addEventListener("submit", function(e) {
e.preventDefault();
let email = form.email.value;
let password = form.password.value;
document.getElementById("result").innerText = `Tài khoản ${email} đã đăng ký!`;
});
</script>
Bài tập
Bài 1 – Hiển thị tên người dùng
Tạo form với 1 ô input tên, 1 nút "Hiển thị". Khi nhấn, hiển thị ra <p>
lời chào với tên vừa nhập.
Bài 2 – Kiểm tra độ dài mật khẩu
Tạo form gồm input mật khẩu. Khi nhấn submit, kiểm tra nếu mật khẩu ít hơn 6 ký tự thì cảnh báo lỗi.
Bài 3 – Tính chỉ số BMI
Tạo form gồm input chiều cao (cm) và cân nặng (kg). Khi submit, tính và hiển thị chỉ số BMI.
Bài 4 – Đăng ký môn học (checkbox)
Tạo form với nhiều checkbox là tên các môn học. Khi submit, in ra danh sách môn học đã chọn.
Bài 5 – Tạo bảng thông tin người dùng
Tạo form nhập tên, email, giới tính (radio), thành phố (select). Khi nhấn "Lưu", thêm dòng mới vào bảng hiển thị bên dưới.