【问题标题】:How to stay on same wizard on refreshing the page in Jquery-Steps?如何在 Jquery-Steps 中刷新页面时保持在同一个向导上?
【发布时间】:2015-12-28 09:18:59
【问题描述】:

我正在为我的向导类型表单使用 jQuery-Steps 插件。现在,当我刷新页面时,我想留在同一个向导上。我该怎么做?

【问题讨论】:

    标签: javascript jquery jquery-steps


    【解决方案1】:

    你必须在初始化jQuery.steps时在选项中设置saveState: true

    例如:

    $("#example-basic").steps({
        headerTag: "h3",
        bodyTag: "section",
        transitionEffect: "slideLeft",
        autoFocus: true,
        saveState: true
    });
    

    saveState 选项依赖于 jQuery.cookie 插件。参考:https://github.com/rstaib/jquery-steps/issues/86

    同样重要的是,saveState 不能在本地文件系统上运行,由于浏览器的限制,它必须从网络服务器提供。


    重置状态:

    为了在向导完成时重置状态,您必须使用 jQuery 单击第一步链接。然后,您可以隐藏向导并显示自定义消息,以免用户感到困惑。

    $("#example-basic").steps({
        ...
        onFinished: function( a ) {
            $('#example-basic .steps a:eq(0)').click();
            $('#example-basic').hide();
            $('#custom-message').show();
        }
    });
    

    这是我发现在不更改或扩展插件代码的情况下重置状态的唯一方法。

    【讨论】:

    • 这有效,但即使在提交表单后它仍在保存状态。提交后,当我尝试再次编辑表单时,它直接将我带到最后一个向导(步骤)。如何清除表单提交的状态?
    • 我已经更新了如何重置状态的答案。不幸的是,steps 插件没有提供修改状态信息的简单方法。
    • 这可行,但在提交表单后,第一个向导再次出现一秒钟,然后它转到主页(我在提交表单后重定向)。这会造成混乱。没有其他方法可以重置状态吗?
    • cookie 键是在插件中设置的,从技术上讲,您可以通过硬编码此键来清除 cookie,但是当您更新插件时它可能会中断。在您自己的权限下使用以下代码。您可以在 onFinished 函数中使用以下代码清除 cookie:$.cookie('jQu3ry_5teps_St@te_' + $( this ).data( "uid" ), '' );
    • 是的,效果很好!你为什么说“在你自己的权限下使用下面的代码”?有没有可能的冲突? (我不会更新插件)
    猜你喜欢
    • 2020-02-12
    • 2016-08-28
    • 2021-10-20
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多