9

我在我的项目中使用 jquery 库。我对 jquery 选项卡有严重的问题。解决方案是,当我在第三个选项卡中时,我发回我的表单,重新加载选项卡并转到第一个选项卡。我一直在寻找解决问题的方法。

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

那么我如何解决这个问题呢?谢谢你的回答。

4

4 回答 4

24

您没有指定是否使用 ASP.NET,但如果是,则可以将当前选定的选项卡存储在 <asp:HiddenField /> 中,而不是 cookie:

<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,您可能会做类似的事情。

于 2009-10-05T04:55:50.457 回答
13

选项卡可以使用 cookie 来存储当前选项卡。查看标签文档。在选项列表下方有一个如何使用 cookie 存储当前选项卡的示例:

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

这需要包含jquery cookies 插件

于 2009-03-01T16:56:45.170 回答
1

我尝试使用 joelsand 发布的解决方案。但是,jQuery 选项卡选项和事件已更改。当前文档位于http://api.jqueryui.com/tabs/

而不是“显示”事件,我使用了“激活”事件。我使用了“活动”选项,而不是“选定”选项。我没有使用隐藏字段,而是使用了 JavaScript 变量(在 UpdatePanel 之外声明)

于 2013-08-07T23:09:17.963 回答
0

我有同样的问题,通过将以下内容添加到 jquery 选项卡选择事件处理程序来解决:

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

它有效地清除所有现有面板以防止表单堆叠。

于 2009-12-30T06:58:58.740 回答