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ệ thống mua khóa học với giá cực rẻ

Tổng hợp những khóa học hay với chi phí mua cực rẻ so với mức giá của các trung tâm đưa ra, với tiêu chí hoa hồng của freetuts nhận được sẽ dành tặng cho các bạn.