2012-05-23 65 views
3

我認爲這將是一個非常容易的人誰是體面的jQuery,但我有我的網頁上動態生成dropdownlist,我已經設置了一個單擊事件類,正如預期的那樣,它們都會觸發點擊事件。 select的ID是動態生成的,所以我不能使用它作爲選擇器。我只是想爲實際發生變化的select開火。下拉列表單擊事件 - jQuery

我需要在函數中使用選定值的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); 
     }); 
    }); 
}); 

非常感謝

回答

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; 
    ...... 
}); 
+0

是的,這工作非常感謝:) –

2

如果它是動態您需要委派:

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

this將引用select .boxitem已更改的類,並且獲取ID和值應按預期方式工作,還將替換具有最接近的非動態父級的文檔!