Bootstrap Dropdown按钮 - >发布选定的下拉值onclick +使用选定值

时间:2015-12-28 03:05:23

标签: ajax twitter-bootstrap model-view-controller drop-down-menu dropdown

目标:用户从下拉按钮中选择粒度(请参阅下面的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>

1 个答案:

答案 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:

&#13;
&#13;
        $(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;
&#13;
&#13;

在这里工作:https://jsfiddle.net/x5rbq4dn/5/

你也可以将ajax代码放在li点击功能中,并通过将其包装在另一个范围中来更新按钮以更新标题,就像#sampVal一样。

您可以在此处查看:AJAX list update, get new elements and count

相关问题