Site logo

Các sự kiện phổ biến trong JavaScript: onchange, onblur, hover và hơn thế nữa

5:00 read

Giới thiệu

Sự kiện (Event) là một phần quan trọng trong JavaScript, cho phép bạn tương tác với người dùng thông qua các hành động như nhập liệu, di chuyển chuột, hoặc thay đổi giá trị. Trong bài viết này, chúng ta sẽ tìm hiểu về các sự kiện phổ biến như onchange, onblur, hover, và nhiều sự kiện khác, cùng với các ví dụ minh họa.


Các sự kiện phổ biến trong JavaScript

1. onchange

Sự kiện onchange được kích hoạt khi giá trị của một phần tử thay đổi, thường được sử dụng với các phần tử như <input>, <select>, và <textarea>.

Ví dụ:

<input type="text" id="name" placeholder="Nhập tên của bạn" />
<script>
  const input = document.getElementById("name");
  input.addEventListener("change", () => {
    console.log("Giá trị đã thay đổi:", input.value);
  });
</script>

2. onblur

Sự kiện onblur được kích hoạt khi một phần tử mất tiêu điểm (focus). Thường được sử dụng để kiểm tra dữ liệu khi người dùng rời khỏi một ô nhập liệu.

Ví dụ:

<input type="email" id="email" placeholder="Nhập email của bạn" />
<script>
  const emailInput = document.getElementById("email");
  emailInput.addEventListener("blur", () => {
    if (!emailInput.value.includes("@")) {
      console.log("Email không hợp lệ");
    }
  });
</script>

3. hover (Sử dụng onmouseenteronmouseleave)

JavaScript không có sự kiện hover trực tiếp, nhưng bạn có thể sử dụng onmouseenteronmouseleave để mô phỏng hành vi này.

Ví dụ:

<div id="hoverBox" style="width: 100px; height: 100px; background-color: lightblue;">
  Di chuột vào đây
</div>
<script>
  const box = document.getElementById("hoverBox");
  box.addEventListener("mouseenter", () => {
    box.style.backgroundColor = "blue";
  });
  box.addEventListener("mouseleave", () => {
    box.style.backgroundColor = "lightblue";
  });
</script>

4. onfocus

Sự kiện onfocus được kích hoạt khi một phần tử nhận được tiêu điểm (focus). Thường được sử dụng để làm nổi bật ô nhập liệu.

Ví dụ:

<input type="text" id="focusInput" placeholder="Nhấp vào đây" />
<script>
  const input = document.getElementById("focusInput");
  input.addEventListener("focus", () => {
    input.style.border = "2px solid green";
  });
</script>

5. oninput

Sự kiện oninput được kích hoạt mỗi khi giá trị của một phần tử đầu vào thay đổi, ngay cả khi người dùng đang nhập.

Ví dụ:

<input type="text" id="liveInput" placeholder="Nhập gì đó" />
<p id="output"></p>
<script>
  const input = document.getElementById("liveInput");
  const output = document.getElementById("output");
  input.addEventListener("input", () => {
    output.textContent = `Bạn vừa nhập: ${input.value}`;
  });
</script>

6. onsubmit

Sự kiện onsubmit được kích hoạt khi một biểu mẫu (form) được gửi.

Ví dụ:

<form id="myForm">
  <input type="text" placeholder="Nhập tên của bạn" required />
  <button type="submit">Gửi</button>
</form>
<script>
  const form = document.getElementById("myForm");
  form.addEventListener("submit", (event) => {
    event.preventDefault(); // Ngăn chặn hành vi gửi mặc định
    console.log("Biểu mẫu đã được gửi");
  });
</script>

7. onscroll

Sự kiện onscroll được kích hoạt khi người dùng cuộn trang hoặc một phần tử có thanh cuộn.

Ví dụ:

<div id="scrollBox" style="width: 200px; height: 100px; overflow-y: scroll; border: 1px solid black;">
  <p>Cuộn xuống để xem thêm nội dung.</p>
  <p>Lorem ipsum dolor sit amet...</p>
  <p>Consectetur adipiscing elit...</p>
</div>
<script>
  const scrollBox = document.getElementById("scrollBox");
  scrollBox.addEventListener("scroll", () => {
    console.log("Đang cuộn...");
  });
</script>

8. onkeydown, onkeyup, và onkeypress

Các sự kiện này được kích hoạt khi người dùng nhấn hoặc thả phím.

Ví dụ:

<input type="text" id="keyInput" placeholder="Nhấn phím bất kỳ" />
<script>
  const input = document.getElementById("keyInput");
  input.addEventListener("keydown", (event) => {
    console.log(`Bạn vừa nhấn phím: ${event.key}`);
  });
</script>

9. ondragondrop

Sự kiện này được sử dụng để xử lý hành vi kéo và thả.

Ví dụ:

<div id="dragItem" draggable="true" style="width: 50px; height: 50px; background-color: red;"></div>
<div id="dropZone" style="width: 200px; height: 200px; border: 2px dashed black; margin-top: 20px;"></div>
<script>
  const dragItem = document.getElementById("dragItem");
  const dropZone = document.getElementById("dropZone");

  dragItem.addEventListener("dragstart", () => {
    console.log("Bắt đầu kéo");
  });

  dropZone.addEventListener("dragover", (event) => {
    event.preventDefault(); // Cho phép thả
  });

  dropZone.addEventListener("drop", () => {
    console.log("Đã thả vào vùng thả");
  });
</script>

Yêu cầu đăng nhập

Vui lòng đăng nhập để truy cập nội dung này

Additional Resources

Course Guide

Comprehensive PDF guide with examples

GitHub Repository

Example code for all lessons

Discussion

Have a question about this lesson? Post it here and get answers from instructors and peers.