質問

私は私のプロジェクトでjqueryライブラリを使用しています。jqueryタブにひどい問題があります。解決策は、3番目のタブにいたときにフォームをポストバックし、タブを再読み込みして最初のタブに移動することです。 私は長い間問題を解決するために探しています。

<script type="text/javascript">
    $(document).ready(function() {
        $("#example > ul").tabs({ remote: true, cache: true });
    });       
</script>

だから私はこの問題をどのように解決しますか? 回答を送信してください。

役に立ちましたか?

解決

タブはクッキーを使用して現在のタブを保存できます。タブドキュメントをご覧ください。 [オプション]リストには、Cookieを使用して現在のタブを保存する方法の例があります。

$('.selector').tabs({ cookie: { expires: 30 } });

ただし、 jquery Cookieプラグインを含める必要があります。

他のヒント

ASP.NETを使用するかどうかは指定しませんでしたが、現在選択しているタブを<!> lt; asp:HiddenField / <!> gt;に保存できます。クッキーの代わりに:

<script type="text/javascript" language="javascript">
    $(function() {
        $("#example").tabs({
            show: function() {
                var sel = $('#example').tabs('option', 'selected');
                $("#<%= hidLastTab.ClientID %>").val(sel);
            },
            selected: <%= hidLastTab.Value %>
        });
    });
</script>
<asp:HiddenField runat="server" ID="hidLastTab" Value="0" />

ASP.NETでない場合、おそらく同様のことができます。

joelsandが投稿したソリューションを使用しようとしました。ただし、jQueryタブのオプションとイベントは変更されています。現在のドキュメントは http://api.jqueryui.com/tabs/ にあります。

<!> quot; show <!> quot;の代わりにイベント、<!> quot; activated <!> quot;イベント。 <!> quot; selected <!> quot;の代わりにオプション、<!> quot; active <!> quot;を使用しました。オプション。 非表示フィールドの代わりに、JavaScript変数(UpdatePanelの外部で宣言されている)を使用しました

同じ問題を抱えていましたが、jqueryタブのselectイベントハンドラーに以下を追加することで修正しました。

$("div.ui-tabs-panel").html("");

既存のすべてのパネルを効果的に消去して、フォームのスタックを防ぎます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top