【问题标题】:How to Control Bootstrap Accordion Form Visibility如何控制 Bootstrap Accordion 表单的可见性
【发布时间】:2016-03-22 19:10:00
【问题描述】:

我使用 bootstrap 手风琴作为创建表单的独特方式。基本上,该表格在其自己的手风琴面板中有 7 个部分。现在我有它,就像我想要的那样,它们都被折叠了,当你打开第一个手风琴时,有一个链接到第二个手风琴的按钮。这正是我希望它工作的方式。但是,在选择“下一步”按钮之前,有没有办法隐藏其他手风琴面板?

例如,当我加载页面时,我只希望他们能够看到“1. Select Features”,当他们打开该页面并在他们按下下一个按钮时选择他们的项目时,即第二个面板变得可见并打开.等等。

我假设我可以做一些我隐藏它们并且按钮触发它可见的事情?我一直在寻找这样的例子,但我找不到任何东西。我知道这个网站不是一个代码编写服务,所以如果有人能指出我正确的方向,我可以做剩下的事情。

<div class="panel-group" id="accordion">
  <div class="panel panel-default" id="panel1">
    <div class="panel-heading">
      <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> 1. Select Features </a> </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse">
      <div class="panel-body">
            Testing 1
        <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> Next </button>
      </div>
    </div>
  </div>


  <div class="panel panel-default" id="panel2">
    <div class="panel-heading">
      <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> 2. Select Styles </a> </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
      <div class="panel-body">
          Testing 2
        <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> Next </button>
      </div>
    </div>
  </div>


  <div class="panel panel-default" id="panel3">
    <div class="panel-heading">
      <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> 3. Contact Info </a> </h4>
    </div>
    <div id="collapseThree" class="panel-collapse collapse">
      <div class="panel-body">
          Testing 3
        <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseFour"> Next </button>
      </div>
    </div>
  </div>

</div>

我在 JSFiddle 中重新创建了它,因此您可以看到我在说什么并使用它。

Fiddle HERE

【问题讨论】:

    标签: javascript jquery html css twitter-bootstrap


    【解决方案1】:

    您可以使用hide() 方法在准备功能上第一次隐藏您想要的div,例如:

    $('#panel2, #panel3').hide();
    

    之后,您应该将标识符 id 添加到每个按钮 next,然后将 click 事件附加到它以控制您的 accordion,就像您希望每次点击一样。

    $('body').on('click', '#btn-next-id', function(){
        //Here show hide divs you want
    })
    

    希望这会有所帮助。


    片段

    $(function(){
        //Hide other steps for the first time
        $('#panel2, #panel3').hide();
        
        $('body').on('click', '#next1', function(){
            $('#panel2').show();
        })
    
        $('body').on('click', '#next2', function(){
            $('#panel3').show();
        })
    })
    /* Latest compiled and minified CSS included as External Resource*/
    
    /* Optional theme */
    @import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css');
    
    body {
        margin: 10px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
    
    I'm using the bootstrap accordion. 
    
    
    <div class="panel-group" id="accordion">
      <div class="panel panel-default" id="panel1">
        <div class="panel-heading">
          <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> 1. CHOOSE YOUR INDUSTRY </a> </h4>
        </div>
        <div id="collapseOne" class="panel-collapse collapse">
          <div class="panel-body">
                Testing 1
            <button id="next1" type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> Next </button>
          </div>
        </div>
      </div>
    
    
      <div class="panel panel-default" id="panel2">
        <div class="panel-heading">
          <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> 2. STANDARD FEATURES </a> </h4>
        </div>
        <div id="collapseTwo" class="panel-collapse collapse">
          <div class="panel-body">
              Testing 2
            <button id="next2" type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> Next </button>
          </div>
        </div>
      </div>
    
    
      <div class="panel panel-default" id="panel3">
        <div class="panel-heading">
          <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> 3. REAL ESTATE FEATURES </a> </h4>
        </div>
        <div id="collapseThree" class="panel-collapse collapse">
          <div class="panel-body">
              Testing 3
            <button id="next3" type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseFour"> Next </button>
          </div>
        </div>
      </div>
    
    </div>

    【讨论】:

    • 这太棒了!有没有办法在我进入第 2 步时,第 1 步仍然可见,而当我进入第 3 步时,第 1 步和第 2 步可见。我只希望它们最初是隐藏的,所以当你进入第 6 步时,你应该能够看到第 1-5 步面板
    【解决方案2】:

    我不确定这是否正是您要查找的内容,但是如何简单地从第 2 步和第 3 步的标题中删除锚元素,以便用户无法单击它们来打开它们?在这里更新小提琴:https://jsfiddle.net/DTcHh/15338/

    <div class="panel-group" id="accordion">
      <div class="panel panel-default" id="panel1">
        <div class="panel-heading">
          <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> 1. CHOOSE YOUR INDUSTRY </a> </h4>
        </div>
        <div id="collapseOne" class="panel-collapse collapse">
          <div class="panel-body">
                Testing 1
            <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo"> Next </button>
          </div>
        </div>
      </div>
    
    
      <div class="panel panel-default" id="panel2">
        <div class="panel-heading">
          <h4 class="panel-title">  2. STANDARD FEATURES </h4>
        </div>
        <div id="collapseTwo" class="panel-collapse collapse">
          <div class="panel-body">
              Testing 2
            <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> Next </button>
          </div>
        </div>
      </div>
    
    
      <div class="panel panel-default" id="panel3">
        <div class="panel-heading">
          <h4 class="panel-title"> 3. REAL ESTATE FEATURES </h4>
        </div>
        <div id="collapseThree" class="panel-collapse collapse">
          <div class="panel-body">
              Testing 3
            <button type="button" class="btn btn-success" data-toggle="collapse" data-parent="#accordion" href="#collapseFour"> Next </button>
          </div>
        </div>
      </div>
    
    </div>
    

    您甚至在第 2 步和第 3 步中添加了一个“上一步”按钮,以便他们可以返回该过程?在这里更新小提琴:https://jsfiddle.net/DTcHh/15339/

    【讨论】:

    • 谢谢,我打算做这样的事情。但我真的很想看看能不能把它们全部隐藏起来,我只是觉得这样看起来会更好。
    • 啊,我稍微误解了你的问题,抱歉。
    猜你喜欢
    • 2013-12-23
    • 1970-01-01
    • 2020-10-13
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    相关资源
    最近更新 更多