2010-03-29 19 views
5

Tôi đang sử dụng Jeditable để chỉnh sửa tại chỗ. Một điều khiển tôi đang làm việc có loại select. Khi người dùng nhấp vào lĩnh vực này, sau đây kiểm soát select được tạo ra:jQuery + Jeditable - phát hiện khi chọn được thay đổi

<div id="status" class="editable_select"> 
    <form> 
     <select name="value"> 
      <option value="Active">Active</option> 
      <option value="Inactive">Inactive</option> 
     </select> 
     <button type="submit">Save</button> 
     <button type="cancel">Cancel</button> 
    </form> 
</div> 

Những gì tôi đang cố gắng tìm ra là làm thế nào để sử dụng jQuery để phát hiện khi mà kiểm soát select được thay đổi, đặc biệt là vì nó không có một thuộc tính ID.

Đây là những gì tôi có cho đến nay, nhưng sự kiện này là không nhận được kích hoạt:

$(document).ready(function() { 
    $('#status select').change(function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

CẬP NHẬT

Đang cập nhật để jQuery 1.4.2 giải quyết vấn đề của tôi cùng với việc sử dụng của Matt dung dịch.

Trả lời

7

Có thể bạn sẽ tìm thấy nó vì trường chọn được thêm vào trang sau khi nó được tải (và sau khi kết thúc sự kiện của bạn diễn ra).

Bạn vẫn có thể nắm bắt được các sự kiện thay đổi nếu đây là trường hợp bằng cách sử dụng live

$(document).ready(function() { 
    $('#status select').live('change', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

Lưu ý rằng kể từ khi tuy nhiên 1,7, phương pháp on() là cách ưa thích để ràng buộc xử lý sự kiện. Tương đương với ở trên là;

$(document).ready(function() { 
    $(document).on('change', '#status select', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 
+0

Làm việc đó, cảm ơn. Tuy nhiên, sự kiện này không bong bóng trong IE vì một lý do nào đó. Suy nghĩ? –

+0

jQuery nên làm như vậy. Bạn đang sử dụng mã nào không hoạt động? – Matt

+0

@Matt: Tôi đang sử dụng mã mà bạn đã cung cấp - nó hoạt động tốt trong các trình duyệt khác ngoại trừ IE8. –