3

我认为这对于任何使用 jQuery 的人来说都是一件非常容易的事情,但是我的页面上有动态生成的下拉列表,并且我在类上设置了一个点击事件,正如预期的那样会触发一个点击事件为他们所有人。的 IDselect是动态生成的,因此我不能将其用作选择器。我只想select为实际更改的事件触发事件。

我需要在函数中使用所选值的 id - 有人知道这是怎么做的吗?

我到目前为止的代码:

$(document).ready(function () {
    $(".boxItem").change(function () {
        var str = $(this).attr('id');
        var num = $(this).val();
        alert(num);
        var url = "/Search/GetBoxChangeInfo";
        var vmData = { json : @Html.Raw(Json.Encode(Model)),
                        id : str,
                        boxNo : num };
        $.post(url, vmData, function (data) {
            $("#column-1").html(data);
        });
    });
});

非常感谢

4

2 回答 2

2

如果它是动态的,您需要委托:

$(document).on('change', '.boxItem', function () {
    var str = this.id;
    var num = this.value;
    ......

this将使用已更改的类引用选择.boxitem,并且获取 ID 和值应该按预期工作,也用最接近的非动态父级替换文档!

于 2012-05-23T15:44:09.503 回答
1
$(".boxItem").on("change", function () {

    // to get the value and id of selected option
    var str = $('option:selected', this).attr('id');
    var value = $('option:selected', this).attr('value');

    // or to get value and id of select box use
    var str = this.id; 
    var value = this.value;
    ......
});

如果你select是在 DOM 准备好之后创建的,那么你应该尝试

 $("body").on("change", ".boxItem", function () {

    // to get the value and id of selected option
    var str = $('option:selected', this).attr('id');
    var value = $('option:selected', this).attr('value');

    // or to get value and id of select box use
    var str = this.id; 
    var value = this.value;
    ......
});
于 2012-05-23T15:37:12.010 回答