いつもお世話になっております、現在タブ切替によるコンタクトフォームを実装しております。
タブが2つあり、タブAとタブBというタブの中身にはコンタクトフォームがあり、メールが送信される仕組みになっております。
今回躓いてしまったところは、
タブBからメールを送信し、エラーが発生しページバックした場合や、ブラウザ更新を行った際にタブAが開いた状態になってしまう、ということです。
エラーが発生した場合は、再度タブBを開けば入力した項目は保持されているためフォームは問題ないと思われます。
そこで、色々検索しまして、
jquery.cookie.jsというものが必要ということで、HTMLに以下を追加しました。
[javascript]
<script src="../js/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="../js/jquery.cookie.js"></script> <script type="text/javascript"> $(function () { var index = 0; // クッキーのindexを取得し読み込み時にオープンする if ($.cookie('index')) { index = $.cookie('index'); $('li').removeClass('selected').eq(index).addClass('selected'); $('article').hide().eq(index).show(); } $('li').click(function() { if (index != $('li').index(this)) { index = $('li').index(this); // タブの内容 $('article').hide().eq(index).fadeIn('fast'); // タブ $('li').removeClass('selected').eq(index).addClass('selected'); // 有効期限は1日(クッキーにはドメインをセットしない、ブラウザを閉じたら初期化) $.cookie('index', index, { expires: 1 }); } }); }); /*↓こちらのscriptも試しました*/ /*$(function() { if($.cookie("openTag")){ //一旦すべての active を外す $('a[data-toggle="tab"]').parent().removeClass('active'); $('a[href=#' + $.cookie("openTag") +']').click(); //$('a[href=#' + $.cookie("openTag") +']').parent().addClass('active'); } $('a[data-toggle="tab"]').on('shown', function (e) { var tabName = e.target.href; var items = tabName.split("#"); //クッキーに選択されたタブを記憶 $.cookie("openTag",items[1], { expires: 700 }); }); });*/ </script>[HTML]
<div class="sample"> <div id="tab01"> <div id="tab02"></div> </div> <!-- .sample --></div><!-- ↓タブ↓ --> <ul id="tab"> <li><a href="#tab01">タブA</a></li> <li><a href="#tab02">タブB</a></li> </ul> <!-- ↑タブ↑ --> <div class="contents"> <!-- ↓タブAの内容↓ --> <div class="tab01 tabContents"> <section> <form> </form> </section> </div> <!-- ↑タブAの内容↑ --> <!-- ↓タブBの内容↓ --> <div class="tab02 tabContents"> <section> <form> </form> </section> </div> <!-- ↑タブBの内容↑ --> <!-- .contents --></div>
これを試したところ、Firefoxや、IE、また開発環境であるDreamWeaverでは更新や戻ってきても正常にタブBが開いたままになっております。
「ChromeはローカルではCookieを生成しない」ということだったため、テストサーバーで確認しましたが、それでもタブAに戻ってしまう状況です。
何が不足していて何が原因なのか、わからない状態です。
ご教授頂ければと思います、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。