Bài 23: Xử lý sự kiện bàn phím & form

yanyan

By yanyan

Cập nhật Tháng 7 19, 2025

Tiếp tục với Bài 29 – Xử lý sự kiện bàn phím và form trong JavaScript. Đây là phần quan trọng giúp bạn tương tác với người dùng khi họ nhập liệu vào form, nhấn phím, hoặc gửi dữ liệu.


1. Bắt sự kiện bàn phím (keydown, keyup, keypress)

document.addEventListener("keydown", function (e) {
  console.log("Bạn nhấn phím:", e.key)
})

Sự kiện thường dùng:

  • keydown: khi nhấn phím xuống
  • keyup: khi thả phím ra
  • keypress: nhấn ký tự (cũ, nên hạn chế dùng)

2. Bắt sự kiện khi nhập trong input

<input type="text" id="username" placeholder="Nhập tên" />
let input = document.getElementById("username")

input.addEventListener("input", function () {
  console.log("Đang gõ:", input.value)
})

3. Xử lý khi nhấn Enter

input.addEventListener("keydown", function (e) {
  if (e.key === "Enter") {
    alert("Bạn vừa nhấn Enter với tên: " + input.value)
  }
})

4. Xử lý form khi nhấn Gửi (submit)

<form id="myForm">
  <input type="text" id="email" />
  <button type="submit">Gửi</button>
</form>
document.getElementById("myForm").addEventListener("submit", function (e) {
  e.preventDefault() // Ngăn load lại trang
  let email = document.getElementById("email").value
  alert("Đã gửi: " + email)
})

5. Giao diện học (code + output)

Hành độngMã JavaScript
Bắt phímkeydown, keyup
Gõ inputaddEventListener("input")
Nhấn Entere.key === "Enter"
Gửi formform.addEventListener("submit")
Ngăn reloade.preventDefault()

Tóm tắt bài 29

Bạn đã học:

  • Bắt phím với keydown, keyup
  • Theo dõi input bằng input.addEventListener("input")
  • Phát hiện nhấn Enter để xử lý nhanh
  • Gửi form bằng submit, chặn reload với preventDefault()
  • Lấy dữ liệu từ các input để xử lý logic

Bài tập

  1. Tạo 1 input → khi nhấn Enter thì in ra tên vừa nhập
  2. Tạo form có ô email → bấm Gửi thì hiện alert chứa email đó
  3. Tạo input + ô hiển thị realtime nội dung đang gõ
  4. Bắt sự kiện keydown → in ra tên phím vừa nhấn

📂 Chuyên mục:

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.