我正在尝试保留特定选项卡(在本例中为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;}
非常感谢您的帮助
答案 0 :(得分: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);
}
});
答案 1 :(得分: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();
});
答案 2 :(得分:1)
您可以在网址中指定标签。 选项卡是URL中的锚点:yourURL / #tab
<form id="form2" action="#tab2" method="post">
</form>
答案 3 :(得分:1)
这很容易。
提交表单后,您必须自动单击所需的选项卡。
首先将Id放在您的标签中,就像这样
self.navigationItem.title = "LOGIN"
然后在关闭之前使用Javascript
<a href='#tab1' id=idtab1 >
<a href='#tab2' id=idtab2 >
答案 4 :(得分:0)
在“提交”按钮的onclick()
事件中使用JQuery.ajax()以异步方式回发值。这样,就不会有窗口重新加载,因为回发将在后台发生。
<强> 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" );
});
}
答案 5 :(得分:0)
添加e.preventDefault();提交按钮。
答案 6 :(得分:0)
当用户单击发送按钮时,您可以将所选选项卡的“id”存储在变量中,并在将表单发布到服务器后将其还原。 有关更多信息,请查看表单事件
答案 7 :(得分:0)
尝试使用jquery Form Plugin通过ajax而不是整页刷新提交表单:http://www.malsup.com/jquery/form/