У меня есть представление, которое отображает выпадающие списки нескольких категорий в цикле ForEach.
@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})
}
Пример: указанный выше идентификатор будет категории 0 по категории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>
Это работает, когда у меня есть только одно раскрывающееся меню, но как я могу заставить его работать с несколькими раскрывающимися списками, созданными динамически?
Любая помощь или предложения, пожалуйста.
Может быть, не так конкретны с вашим селектором, вы можете назначить одинаковый код всем выпадающим спискам, не зная их идентификатор, например:
$( "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/