ボタンをクリックしてフォームを送信すると、ページの再読み込み時に同じタブが開きますが、デフォルトタブになります。私はローカルストレージを試しましたが、動作しません。私のコードで何が間違っていますか?フォーム提出は同じタブにとどまるべきである
[これで動作します。
が$(document).ready(function() {
$('a[data-toggle="tab"]').on('show.bs.tab', function(e) {
localStorage.setItem('activeTab', $(e.target).attr('href'));
});
var activeTab = localStorage.getItem('activeTab');
if(activeTab){
$('#myTab a[href="' + activeTab + '"]').tab('show');
}
$('.tabs .tab-links a').on('click', function(e) {
var currentAttrValue = jQuery(this).attr('href');
// Show/Hide Tabs
jQuery('.tabs ' + currentAttrValue).siblings().slideUp(400);
jQuery('.tabs ' + currentAttrValue).delay(400).slideDown(400);
// Change/remove current tab to active
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
e.preventDefault();
});
$('#btnLock').click(function() {
$('#lockForm').submit();
});
});
HTML::
<div class="tabs" align="center">
<ul class="tab-links">
<li class="active"><a data-toggle="tab" href="#tabs-1">Register</a></li>
<li><a data-toggle="tab" href="#tabs-2">Lock</a></li>
</ul>
<div class="tab-content">
<div id="tabs-1" class="tab active">
<form:form....> <div class="plinput"><a id="btnRegister" class="abutton">Register</a></div>
</form:form>
</div>
<div id="tabs-2" class="tab">
<form:form...> <div class="plinput"><a id="btnLock" class="abutton">Lock</a></div>
</form:form>
</div>
</div>
デバッグ: '場合(activeTab){ $( '#Myタブを[のhref = "' + activeTab + '"]')タブ( 'show'); } 'はアクティブタブが定義されており、それにはあなたが期待するものが含まれています。 –
まず、ブラウザがlocalStorageとsessionStorageをサポートしていますか? これはアクションコードサーバーで制御する必要がありますか、PHPやjavaなどの言語を使用していますか?サーバーサイドで変数をコード化してhtmlに渡す必要があります –
私たちから与えられたコードから、 'localStorage.setItem( 'activeTab'、$(e.target).attr( 'href'));'でなければなりません。 'show.bs.tab'イベントとは何ですか? –