我在视图上有两个下拉列表。SessionDateSelect
将从DB中获取其内容,并且SessionSelect
将基于SessionDateSelect
SelectedLi获得DB的内容。到目前为止,一切正常。但是,当我单击SessionSelect
下拉菜单的内容时,没有任何可行的方法:这是我的代码:
div id="SessionDateSelect">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="btn-DateSelect" data-toggle="dropdown">انتخاب تاریخ شروع کلاس
<span class="caret"></span></button>
<ul class="dropdown-menu" id="dateList">
@{
var dateCollection = Session["classDates"] as List<string>;
if (dateCollection != null)
{
foreach (var item1 in dateCollection)
{
<li><a id="@item1" href="#">@item1</a></li>
}
}
}
</ul>
</div>
</div>
<div id="SessionSelect">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" id="btn-SessionSelect" data-toggle="dropdown">انتخاب جلسه
<span class="caret"></span></button>
<ul class="dropdown-menu" id="classSessions">
</ul>
</div>
</div>
这是JS代码:
<script type="text/javascript">
var selectedDate=null;
$("#SessionDateSelect").find("li a").click(function() {
$('.selectedLi').removeClass('selectedLi');
$(this).addClass('selectedLi');
selectedDate = $('.dropdown-menu').find("li a.selectedLi").attr('id');
var attgrade1 = $('.dropdown-menu').find("li a.selectedLi").text();
$('#btn-DateSelect').html("تاریخ شروع دوره" + " " + attgrade1 + '<span class="caret"></span>');
if (selectedDate != null) {
$.ajax({
url: '@Url.Action("GetSessions", "Main")',
type: 'POST',
traditional: true,
data: { 'date': selectedDate },
success: function (data) {
alert(data);
var mySelect = $('#classSessions');
for (var i = 1; i <= data; i++)
{
mySelect.append(' <li><a id="' + i + '"href="#">' + i + '</a></li>');
}
}
});
}
});
var selectedSession;
$("#SessionSelect").find("li a").click(function () {
alert('click');
$('.selectedLi').removeClass('selectedLi');
$(this).addClass('selectedLi');
selectedSession = $('.dropdown-menu').find("li a.selectedLi").attr('id');
var attgrade = $('.dropdown-menu').find("li a.selectedLi").text();
$('#btn-SessionSelect').html("جلسه شماره" + " " + attgrade + '<span class="caret"></span>');
});
</script>
谢谢'stephen muecke'更改了JS代码,一切正常:
var selectedSession;
$("#classSessions").on('click', 'li', function() {
var selected = $(this).text();
$.ajax({
url: '@Url.Action("ActionName", "Controller")',
type: 'POST',
traditional: true,
data: {'sessionNumber': selected}
});
});