5

我正在使用Jeditable进行就地编辑。我正在使用的控件之一具有该select类型。当用户单击该字段时,将select生成以下控件:

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

我想弄清楚的是如何使用 jQuery 来检测该select控件何时更改,特别是因为它没有 ID 属性。

这是我到目前为止所拥有的,但事件没有被触发:

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

更新

更新到 jQuery 1.4.2 和使用 Matt 的解决方案一起解决了我的问题。

4

1 回答 1

8

您可能会找到它,因为选择字段是在加载后(以及在您的事件绑定发生后)添加到页面中的。

如果是这种情况,您仍然可以使用live捕获更改事件

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

请注意,从 1.7 开始,该on()方法是绑定事件处理程序的首选方法。上面的等价物是;

$(document).ready(function () {
    $(document).on('change', '#status select', function () {
        alert("Change Event Triggered On:" + $(this).attr("value"));
    });
});
于 2010-03-29T21:22:22.167 回答