目标:用户从下拉按钮中选择粒度(请参阅下面的HTML)
粒度下拉列表已更新,以显示用户选择的值
Ajax帖子在后台发生,选择值通过MVC控制器读取。也可以使用一些帮助。
注意:我查看了以下帖子,以使用所选值更新下拉列表。我使用Jai的第二个版本的解决方案
How to Display Selected Item in Bootstrap Button Dropdown Title
我遇到的问题是它错误地更新了页面上的另一个下拉列表。
我需要它来更新基于id的下拉按钮,例如id_granularity_dropdown。
任何帮助你都会得到很大的帮助。有价值的ajax帖子对我来说也是一个问题。
用于下拉列表的HTML。
<ul class="nav navbar-top-links navbar-right">
<li>
<div class="btn-group">
<button data-toggle="dropdown" class="btn-xs btn-info dropdown-toggle" id="id_granularity_dropdown">Auto Sampling <span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">5 min Sampling</a></li>
<li><a href="#">30 min Sampling</a></li>
<li><a href="#">Hourly Sampling</a></li>
<li><a href="#">Daily Sampling</a></li>
</ul>
</div>
</li>
</ul>
答案 0 :(得分:2)
更新:我在单独的函数中动态填充下拉列表,然后调用更新标题的click方法,您可以将其放在ajax方法中并更新标题。
这可以通过以下方式实现:
<ul class="nav navbar-top-links navbar-right">
<li>
<div class="btn-group">
<button data-toggle="dropdown" class="btn-xs btn-info dropdown-toggle" id="id_granularity_dropdown"><span id="sampVal">Auto Sampling</span> <span class="caret"></span></button>
<ul class="dropdown-menu" id="list">
</ul>
</div>
</li>
和javascript:
$(document).ready(function(){
populateLi();
})
$(function() {
$(".dropdown-menu").on("click","li a",function(){
a = $(this).closest("a");
var getSampling = a.text();
$(this).closest(".dropdown-menu").prev().find(".sampVal").text(getSampling);
});
});
function populateLi()
{
$("#id_granularity_dropdown2").find(".dropdown-menu").empty();
insertLi('list2',"#",'1115 min Sampling');
insertLi('list2',"#",'3000 min Sampling');
insertLi('list2',"#",'no Hourly min Sampling');
insertLi('list2',"#",'no Daily min Sampling');
$("#id_granularity_dropdown").find(".dropdown-menu").empty();
insertLi('list',"#",'5 min Sampling');
insertLi('list',"#",'30 min Sampling');
insertLi('list',"#",'Hourly min Sampling');
insertLi('list',"#",'Daily min Sampling');
}
function insertLi (ID,HREF,VALUE) {
ul = document.getElementById(ID);
a= document.createElement("a");
a.appendChild(document.createTextNode(VALUE));
a.setAttribute("href", HREF);
li = document.createElement("li");
li.appendChild(a);
ul.appendChild(li);
}
&#13;
.nav li {display:inline-block;margin-right:10px;}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<ul class="nav navbar-top-links navbar-right">
<li>
<div class="btn-group">
<button data-toggle="dropdown" class="btn-xs btn-info dropdown-toggle" id="id_granularity_dropdown"><span id="sampVal" class="sampVal">Auto Sampling</span> <span class="caret"></span></button>
<ul class="dropdown-menu" id="list">
</ul>
</div>
</li>
<li>
<div class="btn-group">
<button data-toggle="dropdown" class="btn-xs btn-info dropdown-toggle" id="id_granularity_dropdown2"><span id="sampVal2" class="sampVal">No Auto Sampling</span> <span class="caret"></span></button>
<ul class="dropdown-menu" id="list2">
</ul>
</div>
</li>
</ul>
&#13;
在这里工作:https://jsfiddle.net/x5rbq4dn/5/
你也可以将ajax代码放在li点击功能中,并通过将其包装在另一个范围中来更新按钮以更新标题,就像#sampVal一样。