【问题标题】:How to show drop down select in button in html?如何在html中的按钮中显示下拉选择?
【发布时间】:2018-10-05 12:26:57
【问题描述】:

在这里,我在两个不同的按钮中列出小时和分钟。我可以下拉小时和分钟,但没有在按钮中显示选定的值。

        <div class="btn-group btn-group-sm" role="group">
          <button id="startHour" type="button" class="btn btn-secondary" data-toggle="dropdown" href="#">hour</button>

            <div class="dropdown-menu" aria-labelledby="startHour">
              <a class="dropdown-item" href="#">1</a>
              <a class="dropdown-item" href="#">2</a>
              <a class="dropdown-item" href="#">3</a>
              <a class="dropdown-item" href="#">4</a>
              <a class="dropdown-item" href="#">5</a>
              <a class="dropdown-item" href="#">6</a>
              <a class="dropdown-item" href="#">7</a>
              <a class="dropdown-item" href="#">8</a>
              <a class="dropdown-item" href="#">9</a>
              <a class="dropdown-item" href="#">10</a>
              <a class="dropdown-item" href="#">11</a>
              <a class="dropdown-item" href="#">12</a>
            </div>
            <span style="color:white; background-color:#5A6268">:</span>
<div class="btn-group btn-group-sm" role="group">
          <button id="startMinute" type="button" class="btn btn-secondary" 
data-toggle="dropdown" href="#">min</button>
          <div class="dropdown-menu" aria-labelledby="startMinute">
            <a class="dropdown-item" href="#">00</a>
            <a class="dropdown-item" href="#">05</a>
            <a class="dropdown-item" href="#">10</a>
            <a class="dropdown-item" href="#">15</a>
            <a class="dropdown-item" href="#">20</a>
            <a class="dropdown-item" href="#">25</a>
            <a class="dropdown-item" href="#">30</a>
            <a class="dropdown-item" href="#">35</a>
            <a class="dropdown-item" href="#">40</a>
            <a class="dropdown-item" href="#">45</a>
            <a class="dropdown-item" href="#">50</a>
            <a class="dropdown-item" href="#">55</a>
          </div>
          <button type="button" class="btn btn-secondary">am</button>
          <button type="button" class="btn btn-secondary">zone</button>
          <button type="button" class="btn btn-primary">Set</button>

      </div>

还有我用的 javascript

  $(".dropdown-menu a").click(function(){
    var selText = $(this).text();
  $(this).parents('.btn-group').find('.btn-secondary').html(selText);
   });

通过使用上面的 js 代码,我可以在按钮中显示选定的值,但它会将值更改为所有下拉列表。 这是我得到的截图

【问题讨论】:

  • 您忘记了第一个 &lt;/div&gt; 的结束标签 btn-group,因此两个 .btn-secondarys 都被选中。错字问题
  • @CertainPerformance 我已经编辑了我的问题。你能看看吗
  • 你仍然没有关闭div,所以它当然不起作用。看整理后的代码:jsfiddle.net/j7yruoto
  • @CertainPerformance 它改变了所有人的价值
  • 是的,那是因为第一个 div 没有关闭 - 就像我说的,查看整理后的代码。关闭你的 div。

标签: javascript html css twitter-bootstrap drop-down-menu


【解决方案1】:

它改变了所有人的价值——PvDev

您的问题是下拉菜单还是将值设置到正确的部分?也许这会有所帮助。不知道我是否理解你的问题:
jQuery

$(".dropdown-menu a").click(function(){
    var selText = $(this).text();
    var currentBtn = $(this).closest(".btn-group").children("button");
    var currentUnit = currentBtn.data("unit");
    currentBtn.html(selText);
        console.log(currentUnit);
    $("."+ currentUnit).text(selText);
   });

HTML

<div class="btn-group btn-group-sm" role="group">
  <button id="startHour" type="button" data-unit="hours"  class="btn btn-secondary" data-toggle="dropdown" href="#">hour</button>
  <div class="dropdown-menu" aria-labelledby="startHour">
    <a class="dropdown-item" href="#">1</a>
    <a class="dropdown-item" href="#">2</a>
    <a class="dropdown-item" href="#">3</a>
    <a class="dropdown-item" href="#">4</a>
    <a class="dropdown-item" href="#">5</a>
    <a class="dropdown-item" href="#">6</a>
    <a class="dropdown-item" href="#">7</a>
    <a class="dropdown-item" href="#">8</a>
    <a class="dropdown-item" href="#">9</a>
    <a class="dropdown-item" href="#">10</a>
    <a class="dropdown-item" href="#">11</a>
    <a class="dropdown-item" href="#">12</a>
  </div>
  <span style="color:white; background-color:#5A6268">:</span>
</div>
<div class="btn-group btn-group-sm" role="group">
  <button id="startMinute" type="button" data-unit="minutes" class="btn btn-secondary" data-toggle="dropdown" href="#">min</button>
  <div class="dropdown-menu" aria-labelledby="startMinute">
    <a class="dropdown-item" href="#">00</a>
    <a class="dropdown-item" href="#">05</a>
    <a class="dropdown-item" href="#">10</a>
    <a class="dropdown-item" href="#">15</a>
    <a class="dropdown-item" href="#">20</a>
    <a class="dropdown-item" href="#">25</a>
    <a class="dropdown-item" href="#">30</a>
    <a class="dropdown-item" href="#">35</a>
    <a class="dropdown-item" href="#">40</a>
    <a class="dropdown-item" href="#">45</a>
    <a class="dropdown-item" href="#">50</a>
    <a class="dropdown-item" href="#">55</a>
  </div>
</div>
<div class="output">
  <button type="button" class="hours btn btn-secondary">am</button>
  <button type="button" class="minutes btn btn-secondary">zone</button>
  <button type="button" class="seconds btn btn-primary">Set</button>
</div>

https://jsfiddle.net/Rakowu/t982sLuj/1/

我给你的组元素一个数据属性来确定你点击的是什么类型的单元。比我选择带有回调的输出元素。 希望它会有所帮助 (如果有关于如何减少我的代码的想法,我会很高兴在这里:D)

【讨论】:

  • @虽然给了 div,但它改变了设计。设计应该像上面的截图
  • 但这是你想要的吗?
【解决方案2】:

你忘记关闭 div

$(".dropdown-menu a").click(function() {
  var selText = $(this).text();
  $(this).parents('.btn-group').find('.btn-secondary').html(selText);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
<div class="btn-group btn-group-sm" role="group">
  <button id="startHour" type="button" class="btn btn-secondary" data-toggle="dropdown" href="#">hour</button>

  <div class="dropdown-menu" aria-labelledby="startHour">
    <a class="dropdown-item" href="#">1</a>
    <a class="dropdown-item" href="#">2</a>
    <a class="dropdown-item" href="#">3</a>
    <a class="dropdown-item" href="#">4</a>
    <a class="dropdown-item" href="#">5</a>
    <a class="dropdown-item" href="#">6</a>
    <a class="dropdown-item" href="#">7</a>
    <a class="dropdown-item" href="#">8</a>
    <a class="dropdown-item" href="#">9</a>
    <a class="dropdown-item" href="#">10</a>
    <a class="dropdown-item" href="#">11</a>
    <a class="dropdown-item" href="#">12</a>
  </div>
    </div>
  <span style="color:white; background-color:#5A6268">:</span>
  <div class="btn-group btn-group-sm" role="group">
    <button id="startMinute" type="button" class="btn btn-secondary" data-toggle="dropdown" href="#">min</button>
    <div class="dropdown-menu" aria-labelledby="startMinute">
      <a class="dropdown-item" href="#">00</a>
      <a class="dropdown-item" href="#">05</a>
      <a class="dropdown-item" href="#">10</a>
      <a class="dropdown-item" href="#">15</a>
      <a class="dropdown-item" href="#">20</a>
      <a class="dropdown-item" href="#">25</a>
      <a class="dropdown-item" href="#">30</a>
      <a class="dropdown-item" href="#">35</a>
      <a class="dropdown-item" href="#">40</a>
      <a class="dropdown-item" href="#">45</a>
      <a class="dropdown-item" href="#">50</a>
      <a class="dropdown-item" href="#">55</a>
    </div>
  </div>

【讨论】:

  • 诸如此类的错字问题是题外话,不应回答。
  • 它改变了所有的值
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
相关资源
最近更新 更多