6

我试图留在一个特定的选项卡上(在本例中为 tab2 ),但在单击提交按钮后,选项卡将恢复为选项卡 1,该选项卡具有默认的活动类。我用这个撞了一堵砖墙。

这是我的示例[jsfiddle]

HTML:

<ul class='tabs'>
            <li><a href='#tab1'>Tab 1</a></li>
            <li><a href='#tab2'>Tab 2</a></li>
        </ul>
<div id='tab1'>
            <h3>Section 1</h3>
            <p>Lorem ipsum dolor sit amet, consssectetur adipiscing elit. Donec lobortis placerat dolor id aliquet. Sed a orci in justo blandit commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.</p>
                <form id="form1" action="" method="post">            
      <input id="button-1" name="" type="submit" />
</form>
        </div>
<div id='tab2'>
<a name="tab2"></a>
            <h3>Section 2</h3>
            <p>Aenean et est tortor. In pharetra pretium convallis. Mauris sollicitudin ligula non mi hendrerit varius. Fusce convallis hendrerit mauris, eu accumsan nisl aliquam eu.</p>

    <form id="form2" action="" method="post">            
      <input id="button-2" name="" type="submit" />
</form>
        </div>
<div>
  <h2>RESULTS </h2>
</div>        

JavaScript:

$(document).ready(function(){
    $('ul.tabs').each(function(){
        var $active, $content, $links = $(this).find('a');
        $active = $links.first().addClass('active');
        $content = $($active.attr('href'));
        $links.not(':first').each(function () {
            $($(this).attr('href')).hide();
        });

        $(this).on('click', 'a', function(e){
            $active.removeClass('active');
            $content.hide();
            $active = $(this);
            $content = $($(this).attr('href'));
            $active.addClass('active');
            $content.show();
            e.preventDefault();
        });
    });
});

​ CSS:

*         {padding:0; margin:0;}
html      {padding:15px 15px 0;font-family:sans-serif;font-size:14px;}
p, h3     {margin-bottom:15px;}
div       {padding:10px;width:600px;background:#fff;}
ul.tabs   {margin-left:2px;}
#tab1, #tab2 {border-top: solid 1px #ccc;margin-top: -1px; }
#tab2      {display:none;}a
ul.tabs li  {list-style:none;display:inline;}
ul.tabs li a   {padding:5px 10px;display:inline-block;background:#666;color:#fff;text-decoration:none;}
ul.tabs li a.active {background:#fff;color:#000;border: solid 1px #ccc; border-width: 1px 1px 0 1px;}

​</p>

您的帮助将不胜感激

4

9 回答 9

1
<div id="tab">
<ul>
            <li><a href='#tab1'>Tab 1</a></li>
            <li><a href='#tab2'>Tab 2</a></li>
        </ul>
</div>
<form id="form1" action="?tab=tab1" method="post"> 

The jQuery function:
$(document).ready(function(){
        $("#tab").tabs();
        var param = $(document).getUrlParam('tab');
        if (param !=null)
            $("#tab").tabs('select',param);
        else 
            $("#tab").tabs();
    });
于 2012-11-07T15:40:27.447 回答
1

尝试这个

<asp:HiddenField ID="hidAccordionIndex" runat="server" Value="0" />

将其放入您的编码中并按如下方式更改脚本

$("#accordion").accordion({
header: "h3",
autoHeight: false,
event: "mousedown",
active: activeIndex,
ui: "PageName.aspx",
change: function (event, ui) {
var index = $(this).accordion("option", "active");
$('#<% =hidAccordionIndex.ClientID %>').val(index);
}
});
于 2012-09-26T04:40:53.013 回答
1

您可以在 URL 中指定选项卡。选项卡是 URL 中的锚点,例如:yourURL/#tab

<form id="form2" action="#tab2" method="post">            

</form>
于 2014-06-07T07:37:33.033 回答
1

它是如此容易。提交表单后,您必须自动单击所需的选项卡。首先像这样将 ID 放入您的标签 <a href='#tab1' id=idtab1 > <a href='#tab2' id=idtab2 > 中,然后在正文关闭之前使用 Javascript

<script> document.getElementById('idtab2').click(); </script>

于 2015-12-11T10:50:32.167 回答
0

在提交按钮的事件中使用JQuery.ajax()onclick()以异步回发值。这样,不会有窗口重新加载,因为回发将在后台发生。

HTML

<form id="form2">            
      <input id="button-2" type="button" onclick="submit();" value="submit"/>
</form>

JavaScript

​function submit(){
   $.ajax({
  type: "POST",
  url: "submit.php",
  data: { param1: "param1", param2: "param2" }
  }).done(function() {
      alert( "Submitted" );
  });
  }​
于 2012-07-19T12:15:04.323 回答
0

添加 e.preventDefault(); 到提交按钮。

工作示例:http: //jsfiddle.net/Widmore/cwHQA/2/

于 2012-07-19T12:16:01.950 回答
0

当用户单击发送按钮时,您可以将所选选项卡的“id”存储在变量中,并在表单发布到服务器后恢复它。查看表单事件以获取更多信息

http://api.jquery.com/category/events/form-events/

于 2012-07-19T12:16:39.517 回答
0

尝试使用 jquery Form Plugin 通过 ajax 而不是整页刷新提交表单:http: //www.malsup.com/jquery/form/

于 2012-07-19T12:17:53.990 回答
0

这就是标签的 HTML 的样子——

<div class="tab">
   <input type="button"  class="tablinks" onclick="openTab(event, 'NewSummaries')" value="New Summaries" id="NewSummariesTab">
   <input type="button"  class="tablinks" onclick="openTab(event, 'EditedSummaries')" value="Edited Summaries" id="EditedSummariesTab">
</div>  

您可以使用 Javascript 将先前单击的选项卡的 ID 保存在会话变量中。就像是 -

function openTab(evt, categoryName) {
  
  {....Your onclick functionality....}

  localStorage.setItem('CurTab',categoryName)
  var activeTab = localStorage.getItem('CurTab');
  console.log(activeTab);
}

因此,会话变量 'curTab' 将具有您上次单击的选项卡 ID。然后您可以在标签的最开始添加以下脚本。默认情况下,这将单击最后一个活动选项卡-

<script>
document.getElementById(localStorage.getItem('CurTab')).click();
</script>
于 2022-03-02T06:35:52.090 回答