以下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();
});
}
};
}();
答案 0 :(得分:1)
首先,最好将脚本移动到专用文件,并在所有相关页面上调用它。
这样您就不必重复代码,相关页面会加载它。
其次,我不认为你可以在刷新之间可靠地保存javascript数据。
您可以使用网址中的GET或使用ajax在服务器端会话或cookie上保存数据来传递数据。
答案 1 :(得分:1)
在我看来,您想知道的是单页应用程序的粗略方法。在此处查看更多详细信息:JavaScript SPA-Frameworks (Single Page Application)
老实说,我不建议初学者。您可以将代码分解为用户多个页面(登录页面和促销页面),并通过隐藏属性,会话变量,cookie或通过Ajax调用加载来交换变量。