Bắt sự kiện onchange của thẻ select

DEMO

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:

Code RUN
<!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:

Code RUN
// 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é.

Nguồn: freetuts.net

Hãy đặt câu hỏi trên Group Facebook để được mọi người hỗ trợ nhanh hơn. Liên hệ Fanpage nếu có thắc mắc về nội dung như: link chết, bản quyền, ma nguồn bị lỗi ...

[Review] - Khóa học Javascript dành cho người mới bắt đầu tại Fedu

Nếu bạn là người mới bắt đầu tìm hiểu về Javascript thì đây là khoá học rất đáng để bạn xem đấy, giá chỉ 349k với hơn 15h học online nên dù bận cỡ nào bạn cũng có thể học được. Ngoài ra còn có cơ chế hoàn tiền nếu bạn không hài lòng.