Javascript存储变量以供下一页使用


Javascript storing Variable for next page use

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

这个JS只加载在登录页面,而不是推广页面。我是JS的新手,想寻求关于正确方法的建议,以进行此加载。

如保存一个变量,如果创建按钮从促销页面点击,并检测它当页面加载?等

登录页面脚本

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

Script Loaded in

    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();
            });
        }
    };
}();

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

这样你就不用重复代码了,相关页面也会加载它。

其次,我不认为你可以可靠地保持数据从javascript刷新。

您可以通过在url中使用GET或使用ajax将数据保存在服务器端会话或cookie中来传递数据。

在我看来,您想知道的是单页应用程序的粗略方法。JavaScript SPA-Frameworks (Single Page Application)

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