2011-08-23 27 views
7

Làm cách nào tôi có thể phát hiện trong jQuery khi bất kỳ tùy chọn nào trong thẻ đã được thay đổi?jQuery - trình xử lý sự kiện để phát hiện nếu tùy chọn chọn HTML đã được chọn

Ví dụ [giả]:

event handler function -> option changed(){  
    //do some stuff 
} 

EDIT:

Tôi có sau chọn:

<select id = "selectattribute"> 
    <OPTION VALUE="0">Choose Attribute</OPTION> 
    <?php echo($options);?> 
</select> 

tôi đang cố gắng này trong jQuery:

$(document).ready(function() { 
    $("#selectattribute").change(function() { 
    alert('Handler for .change() called.'); 
    }); 
}); 

Không có gì xảy ra ... th chức năng e không kích hoạt.

EDIT: nó hoạt động khi tôi sử dụng $("#select") thay vì $("#selectattribute")...can you not apply it to particular select tags?

+0

Bạn đính kèm một người biết lắng nghe để các yếu tố lựa chọn cho sự kiện thay đổi. Bạn có thể sử dụng jQuery (hoặc bất kỳ một số thư viện), hoặc một vài dòng script đơn giản hoặc một trình xử lý nội dòng. – RobG

+0

@RobG: Bạn thực sự không nên đề xuất trình xử lý nội tuyến ... – Saxoier

+0

bạn đã thử các trình duyệt khác nhau chưa? –

Trả lời

8

Từ jQuery docs regarding the change handler:

<form> 
    <input class="target" type="text" value="Field 1" /> 
    <select class="target"> 
    <option value="option1" selected="selected">Option 1</option> 
    <option value="option2">Option 2</option> 
    </select> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 

Các xử lý sự kiện có thể được liên kết với các đầu vào văn bản và chọn hộp:

$('.target').change(function() { 
    alert('Handler for .change() called.'); 
}); 
+0

Xin chào! Tôi đã thấy và triển khai nó nhưng không hoạt động ... xem bài đăng đã chỉnh sửa của tôi – user906568

+0

Nó sẽ hoạt động theo mã bạn đã đăng chỉnh sửa của bạn. Xem liên kết fiddle bởi "Jon P" trong một câu trả lời ở đây. Mã được đăng của bạn hoạt động khi bị cô lập. Vì vậy, nó có thể bạn có những thứ khác trong phần còn lại của trang đó là rối tung nó lên - bạn có thể phải đăng toàn bộ trang HTML. Bạn có đang sử dụng tên id nhiều lần không? Có bất kỳ lỗi JavaScript nào trong bảng điều khiển không? –

1
$("select").change(function() {}) 
+0

Tôi đã thử nhưng không hoạt động -> xem bài chỉnh sửa của tôi – user906568

+0

bạn cần xem tài liệu về bộ chọn jquery '$ (" select ")' sẽ chọn tất cả các thẻ '