我有一个使用Bootstrap控件的 ASP.net 项目。我有以下 Bootstrap 下拉菜单,它以编程方式从数据库中提取列表项。
但是,当我单击菜单并选择其中一个项目时,我显然需要该项目显示在下拉框中。相反,当单击某个项目时,除了关闭下拉菜单外,没有任何反应。
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" id="merchantList" data-toggle="dropdown" aria-expanded="false"> Choose Merchant <span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="merchantList" id="myList" runat="server">
<asp:Literal runat="server" id="merchantDropDown"></asp:Literal>
</ul>
</div>
我假设需要某种 JavaScript 将下拉菜单设置为已选择的任何项目。但我不知道该怎么做。
我试过:
$("#myList li a").click(function () {
alert('clicked');
var selText = $(this).text();
$(this).parents('.btn-group').find('.dropdown-toggle').html(selText + ' <span class="caret"></span>');
});
还尝试过:
$('#myList li a').on('click', function () {
$('#merchantList').val($(this).text());
});
但这些似乎从未被召唤过。有什么想法吗?如果我可以在后面的代码中执行此操作会更好,因为我更喜欢在那里工作。
误解了您要做什么,请纠正我,但您不应该能够找到他们选择的项目并设置其 css class="active"。要确定他们选择的当前项目与他们所在的当前页面匹配,有几种使用 URL 的技术。
尝试在母版页上执行类似操作的操作:
var url = window.location;
$('ul.nav a[href="'+ url +'"]').parent().addClass('active');
我最后这样做了,似乎一切都在工作。很简单,我只是想不通,因为我是JS新手!
<script>
$().ready(function () {
$('a').click(function () {
var value = $(this).text();
$('#merchantList').html(value + ' <span class="caret"></span>');
alert(value);
});
});
</script>