Bắt sự kiện onchange của thẻ select
Thông thường ta hay sử dụng Javascript để bắt sự kiện onchange của thẻ select. Sự kiện onchange là sự kiện khi bạn thay đổi lựa chọn của select box. Ví dụ trang nhập thông tin giới tính bạn sẽ có hai giá trị đó là nam hoặc nữ, nếu bạn thay đổi từ nam sang nữ hoặc ngược lại thì sẽ xảy ra sự kiện onchange.
Trăm nghe không bằng mắt thấy, bây giờ mình sẽ làm một ví dụ để bạn dễ hiểu hơn nhé: Hãy viết chương trình cho người dùng chọn giới tính, mỗi khi người dùng thay đổi giới tính thì hiển thị một câu thông báo giới tính mà họ đã chọn.
Bài giải
Trước tiên chúng ta sẽ xây dựng HTML như sau:
Bài viết này được đăng tại [free tuts .net]
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Javascript Example</title> </head> <body> <h2>Chọn giới tính</h2> <p>In ra thông báo khi giới tính được thay đổi </p> <select id="gender" onchange="genderChanged(this)"> <option value=""> -- Chọn -- </option> <option value="nam">Nam</option> <option value="nu"> Nữ </option> </select> <p style="color: red" id="show_message"></p> <script language="javascript"> // Hàm xử lý khi thẻ select thay đổi giá trị được chọn // obj là tham số truyền vào và cũng chính là thẻ select function genderChanged(obj) { } </script> </body> </html>
Nhiệm vụ bây giờ là bổ sung Javascript vào hàm genderChanged
, code nhu sau:
// Hàm xử lý khi thẻ select thay đổi giá trị được chọn // obj là tham số truyền vào và cũng chính là thẻ select function genderChanged(obj) { var message = document.getElementById('show_message'); var value = obj.value; if (value === ''){ message.innerHTML = "Bạn chưa chọn giới tính"; } else if (value === 'nam'){ message.innerHTML = "Bạn đã chọn giới tính nam"; } else if (value === 'nu'){ message.innerHTML = "Bạn đã chọn giới tính nữ"; } }
Chạy ví dụ này lên bạn sẽ thấy kết quả như trong đề bài đưa ra. Nếu bạn chưa hiểu event là gì thì hãy tham khảo bài sự kiện (event) trong Javascript nhé.