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変更されたクラスでselectを参照し.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 に答える