【问题标题】:getElementById() ? Remembering the last active tab after a submit / refreshgetElementById() ?在提交/刷新后记住最后一个活动选项卡
【发布时间】:2014-07-17 12:36:17
【问题描述】:

我有一个非常烦人的问题,经过几天的尝试和谷歌搜索,我无法解决。

我的表单中有一些标签。
当我在第三个选项卡 (3 / 3) 中并点击提交以更新我的表单时,我总是会进入第一个选项卡。
我想留在活动标签页。

这是我的 jQuery

$(document).ready(function () {
    /***** intra - Tabs *****/
    $('.intra-tab-content').hide();
    $('.intra-tab-content:first').show();
    $('.intra-tab').click(function () {
        var tabContentId = '#' + $(this).attr('name');
        $('.intra-tab').attr('class', 'intra-tab');
        $(this).attr('class', 'intra-tab intra-tab-bar-actual-tab');
        $('.intra-tab-content').hide();
        $(tabContentId).show();
    });
});

这是我的 HTML

<div class="intra-tab-bar">
<ul>
    <li><a href="#" name="tab0" class="intra-tab intra-tab-bar-actual-tab">foo</a>

    </li>
    <li><a href="#" name="tab1" class="intra-tab intra-tab-bar-actual-tab">bar</a>

    </li>
    <li><a href="#" name="tab2" class="intra-tab intra-tab-bar-actual-tab">foobar</a>

    </li>
</ul>

如果有人可以帮助我会很棒..
提前感谢
克尔特

【问题讨论】:

    标签: javascript jquery tabs refresh getelementbyid


    【解决方案1】:

    点击提交后,页面的默认行为是重新加载,从而使您的页面进入初始状态(选择选项卡 1)。

    所以有两个机会:

    • 您可以将选定的选项卡保存在您的服务器上(例如在会话中)并将其加载到 jQuery 的就绪回调中

    • 不要让您的页面使用默认行为,而是调用您的自定义提交回调函数并停止传播:

    $("#submit-form").submit(function () { var formData = $(this).serialize(); //jQuery function to get the forms values $.ajax({ url: "url", //forms url type: "POST/PUT/GET/DELETE", //default: get data: formData, success: function(data) { //success callback } }); return false; //stops propagation });

    【讨论】:

      【解决方案2】:

      有很多方法可以解决这个问题。 Florian 已经建议了最优雅的方法,而不是使用浏览器提交功能,而是使用 ajax 定义您自己的提交行为,以防止页面加载。

      或者:

      1. 如果您可以使用local storage,即您的客户端是 HTML5 基于浏览器,你可以做的是为你想要的标签设置一个标志 喜欢加载页面。使用后清除标志。
      2. 将一个额外的参数发送回服务器,其中包含用户所在的最后一个选项卡。这样,当您重新加载时,您可以从服务器发送回标签 ID 并重新加载您的页面。这与 ajax 相结合将允许您更改客户端上的选项卡以指定服务器错误!

      虽然这个答案只是为了解决问题的更多方法。对于刚刚工作的东西,去 ajax!

      【讨论】:

        猜你喜欢
        • 2020-05-28
        • 2011-05-17
        • 2013-09-14
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多