Javascript 带有jquery切换字段集的多步骤表单字段

Javascript 带有jquery切换字段集的多步骤表单字段,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我有一个多步骤表单,希望利用jquery和bootstrap实现以下功能: 当用户单击图例时,相应的字段集将展开 当用户单击“下一步”按钮时,该字段集关闭,下一个字段集打开 当用户单击“上一个”按钮时,该字段集关闭,上一个字段集打开 所有这些行为都应该切换glyphicon加号glyphicon减号图标。我的jquery代码在html下面 HTML: 您可以使用bootstrap内置的accordion并添加一点javascript来控制图标: 下面是一个引导示例: HTML 谢谢,这是一个

我有一个多步骤表单,希望利用jquery和bootstrap实现以下功能:

  • 当用户单击图例时,相应的字段集将展开
  • 当用户单击“下一步”按钮时,该字段集关闭,下一个字段集打开
  • 当用户单击“上一个”按钮时,该字段集关闭,上一个字段集打开
所有这些行为都应该切换glyphicon加号glyphicon减号图标。我的jquery代码在html下面

HTML:


您可以使用bootstrap内置的
accordion
并添加一点javascript来控制图标:

下面是一个引导示例:

HTML


谢谢,这是一个很好的开始,我会接受它作为答案。您还可以提供jquery,使整个面板头可以单击以展开/折叠,而不仅仅是链接吗?--没关系,我所要做的就是将数据切换、数据父项和href向上移动到面板标题
 <fieldset>
 <legend class="bg-info"><span class="badge progress-bar-info" style="font-size:18px;">1</span> Registration Details <span class="glyphicon glyphicon-minus-sign pull-right" aria-hidden="true"></span></legend>
    <div class="form_container">Content</div>
    <input type="button" name="next" class="next action-button" value="Next" />
 </fieldset>

<fieldset>
        <legend class="bg-info"><span class="badge progress-bar-info" style="font-size:18px;">2</span> Age Groups and Divisions <span class="glyphicon glyphicon-plus-sign pull-right" aria-hidden="true"></span></legend>
    <div class="form_container" style="display:none;">Content</div>
    <input type="button" name="previous" class="previous action-button" value="Previous" />
    <input type="button" name="next" class="next action-button" value="Next" />
</fieldset>
$(function(){
    // Set cursor to pointer and add click function
    $("legend").css("cursor","pointer").click(function(){
        var legend = $(this);
       $(this).siblings().slideToggle("slow", function() { legend.children(".glyphicon").toggleClass("glyphicon-plus-sign glyphicon-minus-sign"); } );
    });
});

$(".next").click(function(){

    current_fs = $(this).parent();
    next_fs = $(this).parent().next("fieldset");

    $(this).closest(".form_container").slideToggle("slow", function() { current_fs.closest("legend span.glyphicon").toggleClass("glyphicon-plus-sign glyphicon-minus-sign"); } );
    $(this).next(".form_container").slideToggle("slow", function() { $(this).parent().children("legend.glyphicon").toggleClass("glyphicon-plus-sign glyphicon-minus-sign"); } );

});
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
  <div class="panel panel-default">
    <div class="panel-heading" role="tab" id="headingOne">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Registration Details <span class="glyphicon glyphicon-minus"></span>
        </a>
      </h4>
    </div>
    <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
      <div class="panel-body">
        <p>blah blah blah</p>
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo" class="btn btn-default">Next</a> 
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading" role="tab" id="headingTwo">
      <h4 class="panel-title">
        <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Age Groups and Divisions <span class="glyphicon glyphicon-plus"></span>
        </a>
      </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
      <div class="panel-body">
        <p>blah blah blah</p>
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne" class="btn btn-default">Previous</a>
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree" class="btn btn-default">Next</a>
      </div>
    </div>
  </div>
</div>
$('.collapse').on('shown.bs.collapse', function(){
    $(this).parent().find(".glyphicon-plus").removeClass("glyphicon-plus").addClass("glyphicon-minus");
});

$('.collapse').on('hidden.bs.collapse', function(){
    $(this).parent().find(".glyphicon-minus").removeClass("glyphicon-minus").addClass("glyphicon-plus");
});