【问题标题】:Bootstrap Dropdown button-> post selected dropdown value onclick + Update dropdown with selected valueBootstrap 下拉按钮-> 发布选定的下拉值 onclick + 使用选定值更新下拉列表
【发布时间】:2015-12-28 03:05:22
【问题描述】:

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

【问题讨论】:

  • 您应该根据其他 SO 答案发布您实际尝试过的内容以及代表无意更新的其他按钮的其余代码。
  • 你为什么不尝试为该下拉菜单提供不同的 id/class !这样您就不需要指定为first-childsecond-child(根据您上面提供的链接)。
  • @vanburen jquery 和 ajax 不是我的强项,我正在努力寻找类似的场景,如果你能指出我什至可以帮助它的网络链接,将不胜感激。跨度>

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


【解决方案1】:

更新:我在单独的函数中动态填充下拉列表,然后调用更新标题的 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);
}
.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>

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

您还可以将 ajax 代码放在 li click 函数中,并通过将其包装在另一个跨度中来更新要更新的按钮标题,就像 #sampVal 一样。

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

【讨论】:

  • 感谢您到目前为止的帮助。我注意到一个问题,如果另一个按钮说带有下拉菜单的按钮 2 也在页面上,则选择按钮 2 中的字段会错误地更改粒度按钮下拉菜单。我认为这就是您填充列表的原因,但我试图避免用户在首次运行时手动单击按钮来填充列表。
  • 我更新了我的代码,请检查sn-p,列表是动态填充的,可以在你选择的ajax中调用,标题也会相应更新。
猜你喜欢
  • 1970-01-01
  • 2015-05-12
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多