下面的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调用加载。