Javascript存储变量供下一页使用

时间:2013-06-09 16:18:38

标签: php javascript html

以下javascript用于显示/隐藏登录页面中的表单。我有一个名为(促销页面)的另一个页面的创建帐户和登录按钮。当用户按下Login时,它会相应加载,因为默认设置为加载登录表单,但是当用户单击创建帐户时,我希望它加载创建帐户表单。

此JS仅在“登录”页面中加载,而不是在促销页面中加载。我是JS的新手,我想寻求有关正确方法的建议,以便继续进行此加载。

例如 如果从Promo页面单击Create按钮并在加载页面时检测到它,则保存变量?等

登录页面的脚本

  <script>

jQuery(document).ready(function() {     
  App.init();
  Login.init();
});

在上面的代码

之后加载在页面中的脚本
    var Login = function () {

    return {
        //main function to initiate the module
        init: function () {

                invalidHandler: function (event, validator) { //display error alert on form submit   

                },

                highlight: function (element) { // hightlight error inputs
                    $(element)
                        .closest('.control-group').addClass('error'); // set error class to the control group
                },

                success: function (label) {
                    label.closest('.control-group').removeClass('error');
                    label.remove();
                },

                errorPlacement: function (error, element) {
                    error.addClass('help-small no-left-padding').insertAfter(element.closest('.input-icon'));
                },

                submitHandler: function (form) {
                    window.location.href = "index.html";
                }
            });

            $('.forget-form input').keypress(function (e) {
                if (e.which == 13) {
                    if ($('.forget-form').validate().form()) {
                        window.location.href = "index.html";
                    }
                    return false;
                }
            });

            jQuery('#forget-password').click(function () {
                jQuery('.login-form').hide();
                jQuery('.forget-form').show();
            });

            jQuery('#back-btn').click(function () {
                jQuery('.login-form').show();
                jQuery('.forget-form').hide();
            });



                invalidHandler: function (event, validator) { //display error alert on form submit   

                },

                highlight: function (element) { // hightlight error inputs
                    $(element)
                        .closest('.control-group').addClass('error'); // set error class to the control group
                },

                success: function (label) {
                    label.closest('.control-group').removeClass('error');
                    label.remove();
                },

                errorPlacement: function (error, element) {
                    if (element.attr("name") == "tnc") { // insert checkbox errors after the container                  
                        error.addClass('help-small no-left-padding').insertAfter($('#register_tnc_error'));
                    } else {
                        error.addClass('help-small no-left-padding').insertAfter(element.closest('.input-icon'));
                    }
                },

                submitHandler: function (form) {
                    window.location.href = "index.html";
                }
            });

            jQuery('#register-btn').click(function () {
                jQuery('.login-form').hide();
                jQuery('.register-form').show();
            });

            jQuery('#register-back-btn').click(function () {
                jQuery('.login-form').show();
                jQuery('.register-form').hide();
            });
        }

    };

}();

2 个答案:

答案 0 :(得分:1)

首先,最好将脚本移动到专用文件,并在所有相关页面上调用它。

这样您就不必重复代码,相关页面会加载它。

其次,我不认为你可以在刷新之间可靠地保存javascript数据。

您可以使用网址中的GET或使用ajax在服务器端会话或cookie上保存数据来传递数据。

答案 1 :(得分:1)

在我看来,您想知道的是单页应用程序的粗略方法。在此处查看更多详细信息:JavaScript SPA-Frameworks (Single Page Application)

老实说,我不建议初学者。您可以将代码分解为用户多个页面(登录页面和促销页面),并通过隐藏属性,会话变量,cookie或通过Ajax调用加载来交换变量。