06/04/2021, 14:48

Bắt sự kiện onchange của thẻ select - Bài tập Javascript

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 ...

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é.

DEMO

Trần Văn An viết 23:42 ngày 15/12/2022
Trần Văn An viết 23:42 ngày 15/12/2022

onchange="genderChanged(this)" 
cho mình hỏi cái "this" trong đây hoạt động ntn ạ.

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

Cùng chủ đề
0