2014-03-31 45 views
0

我有一個視圖,它呈現ForEach循環中的多個歌曲類別下拉列表。MVC控件和jQuery函數

@foreach (var itemCategory in Model) 
{ 
    //Generate unique ids for the category dropdown and assign them. 
@{ 
     string sCategory = "category" + i; 
} 
@Html.DropDownListFor(itemCategory.categoryName , itemCategory.songslist, new {@Id=sCategory}) 
} 

例:上的ID是category0到類別4

我試圖找到利用變化事件每個類別下拉菜單中選擇單個值。但下面的腳本不起作用。

的JavaScript/jQuery的:

<script type="text/javascript"> 

$(function() { 

     var totalCategories = 5    
     for (i = 0; i < totalCategories ; i++) { 

       $('#category' + i) 
        .change(function() { 
         var str = ""; 
         str = $('#category' + i).children('option:selected').val(); 
         alert(str); 
        }) 
        .change(); 

     } 
}); 

</script> 

這工作時,我只有一個下拉菜單,但我怎麼做它與動態創建多個下拉菜單的工作?

請任何幫助或建議。

+1

在你的foreach循環中「i」是什麼? – Neel

+0

檢查下拉列表中是否存在html源代碼中的id category0,category1等。 –

+0

我使用「i」將更改事件調用到特定的下拉列表。 – user3479754

回答

0

也許不符合你的選擇等,具體你可以分配相同的代碼對所有的下拉列表中不知道自己的ID,如:

$("select") 
    .change(function() { 
    var str = ""; 
    $(this).find("option:selected").each(function() { 
     str += $(this).text() + " "; 
    }); 
    alert(str); 
    }) ; 

http://api.jquery.com/change/

編輯:

看到這個小提琴:http://jsfiddle.net/NFmS8/1/

+0

我先試過這段代碼,但它也從其他下拉菜單中選取了所選的值。 – user3479754

+0

@ user3479754我更新了代碼幷包含了一個工作小提琴。 – shenku

+0

嗨Shenku:你的解決方案對我來說非常合適。我做的一個小改變是將函數傳遞給函數,並使用e.target.name來獲取選擇下拉列表的名稱。感謝您的幫助。 – user3479754