Bootstrap 下拉按钮-> post 选定的下拉值 onclick + 使用选定值更新下拉列表
Bootstrap Dropdown button-> post selected dropdown value onclick + Update dropdown with selected value
目标:用户从下拉按钮中选择粒度(参见下面的 HTML)。
粒度下拉列表已更新以显示用户选择的值。
Ajax post 在后台发生,选择的值将通过 MVC 控制器读取。也可以使用一些帮助。
注意:我查看了以下 post 以使用所选值更新下拉列表。我使用 Jai 的解决方案的第二个版本
How to Display Selected Item in Bootstrap Button Dropdown Title
我遇到的问题是它错误地更新了页面上的另一个下拉菜单。
我需要它来更新基于 id 的下拉按钮,例如 id_granularity_dropdown.
任何帮助你都会有很大的帮助。有值的ajaxpost对我来说也是个问题。
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>
更新:我在单独的函数中动态填充下拉列表,然后调用更新标题的点击方法,您可以将其放入 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);
}
.nav li {display:inline-block;margin-right:10px;}
<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>
在这里工作fiddle:https://jsfiddle.net/x5rbq4dn/5/
您还可以将 ajax 代码放在 li click 函数中,并更新要更新标题的按钮,方法是将其包装在另一个范围内,就像 #sampVal 完成的那样。
目标:用户从下拉按钮中选择粒度(参见下面的 HTML)。
粒度下拉列表已更新以显示用户选择的值。
Ajax post 在后台发生,选择的值将通过 MVC 控制器读取。也可以使用一些帮助。
注意:我查看了以下 post 以使用所选值更新下拉列表。我使用 Jai 的解决方案的第二个版本
How to Display Selected Item in Bootstrap Button Dropdown Title
我遇到的问题是它错误地更新了页面上的另一个下拉菜单。
我需要它来更新基于 id 的下拉按钮,例如 id_granularity_dropdown.
任何帮助你都会有很大的帮助。有值的ajaxpost对我来说也是个问题。
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>
更新:我在单独的函数中动态填充下拉列表,然后调用更新标题的点击方法,您可以将其放入 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);
}
.nav li {display:inline-block;margin-right:10px;}
<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>
在这里工作fiddle:https://jsfiddle.net/x5rbq4dn/5/
您还可以将 ajax 代码放在 li click 函数中,并更新要更新标题的按钮,方法是将其包装在另一个范围内,就像 #sampVal 完成的那样。