views:

221

answers:

1

I'm using Jeditable for in-place editing. One the controls I am working with has the select type. When a user clicks on the field, the following select control is generated:

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

What I am trying to figure out is how to use jQuery to detect when that select control is changed, especially since it doesn't have an ID attribute.

This is what I have so far, but the event is not getting triggered:

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

UPDATE

Updating to jQuery 1.4.2 solved my problem along with using Matt's solution.

+2  A: 

You'll probably find its because the select field is been added to the page after it's loaded (and after your event bindings take place).

You can still capture change events if this is the case by using live

$(document).ready(function () {
    $('#status select').live('change', function () {
        alert("Change Event Triggered On:" + $(this).attr("value"));
    });
});
Matt
Got it to work, thanks. However, this event doesn't bubble in IE for some reason. Thoughts?
Bryan Roth
jQuery should make it so. What code are you using that doesn't work?
Matt
@Matt: I'm using the code that you provided - it works fine in other browsers except IE8.
Bryan Roth
http://jsfiddle.net/LnevH/ works for me in IE8 :\. What does it do for you?
Matt
@Matt: Updating to jQuery 1.4.2 solved my problem. Thanks again!
Bryan Roth