停留在<李>表单提交后的选项卡
Stay on a <li> tab after form submit
提交表单或刷新页面后,如何留在当前选项卡上。选项卡是用li
制作的,而不是用div
制作的。这些是选项卡:
<ul class="tabs">
<li><a href="#profile" class="active"> Profile </a></li>
<li><a href="#favourites"> Favourites </a></li>
<li><a href="#settings"> Settings </a></li>
</ul>
<ul class="tabs-content">
<li id="profile">TEXT</li>
<li id="favourites">TEXT</li>
<li id="settings">submit form...</li>
</ul>
您可以这样做,使用CSS :target
.tabs-content li {
display: none;
}
#profile:target,
#favourites:target,
#settings:target {
display: inline-block;
}
<ul class="tabs">
<li>
<a href="#profile" class="active"> Profile </a>
</li>
<li>
<a href="#favourites"> Favourites </a>
</li>
<li>
<a href="#settings"> Settings </a>
</li>
</ul>
<ul class="tabs-content">
<li id="profile">profile</li>
<li id="favourites">favourites</li>
<li id="settings">settings</li>
</ul>
如果你提交了一个表单,即在设置中,请确保表单操作也有哈希。
<form action="save_settings.aspx#settings">
在提交表单时尝试捕获当前li
元素。此外,将id
添加到每个元素。
// assuming class for `submit` button is `submit`
$('.submit').on('click', function(){
var linkId = $('.active').atr('id');
});
在页面刷新或提交表单后调用:
$('#'+ linkId).click();
注意:假设您是通过Ajax提交表单的,如果不是,那么您需要将存储的var
值传递到后端,并将其与视图的响应一起传递回来,然后按照相同的代码点击它。
尝试将当前活动选项卡的索引(即li
索引)存储到localstorage/cookies,并在页面加载时检索该值,使li
成为活动选项卡。
if (typeof(Storage) !== "undefined") {
// 1 should be replaced with the active li's index
localStorage.setItem("currentActiveTab", "1");
} else {
// Sorry! No Web Storage support..
}
在文档准备好后,做一些类似的事情
if (localStorage.currentActiveTab) {
$('li').eq(localStorage.currentActiveTab).click();
}
相关文章:
- 当<选择的选项>重新选择
- 给出<选项>标记一个类?API调用不工作
- 点击<选择>元素,但不在<选项>
- 可以't在<选项>
- <选项>单击eventangularjs
- jQuery在处理<选择><选项>
- 如何设置<选项>在用数据绑定填充的选择中='选项:[..]'
- 在<选项>是可行的选择
- 一个<选项>
- jQuery:关注<选择>'s<选项>
- 迭代<选项>AngularJS中带有按钮的值
- 禁用<选项>当已经选择时
- 选择<选项>基于一个值
- 为什么Angular不通过添加'选择'属性为<选项>当它正确更新模型时,在ng选项中标记
- Jquery.查找所有<tr>包含来自所选<选项>
- 如何通过<选项>在<选择>列表到功能中,同时跟踪所选选项
- 使用多个<选项>'s位于两个下拉选择器中
- 从多个<选择>/<选项>
- 同步<选择>通过<选项>地方
- 多重<选项>相互连接