Javascript 使用jQuery将局部变量转换为全局变量

Javascript 使用jQuery将局部变量转换为全局变量,javascript,jquery,Javascript,Jquery,我有一个登录表单,它有一个用户名,密码变量。 但我的要求是将登录的用户名传递给一个全局变量,并在整个站点中使用它 这里我希望函数userLogin()中的用户名值存储在全局用户名中 下面是代码,如果我错了,请帮助: jQuery: $(function(){ var username = ?; /*Login forms functionality */ $("#submit-login").click(function(){ userLogin(); })

我有一个登录表单,它有一个用户名,密码变量。 但我的要求是将登录的用户名传递给一个全局变量,并在整个站点中使用它

这里我希望函数
userLogin()
中的用户名值存储在全局用户名中

下面是代码,如果我错了,请帮助:

jQuery:

$(function(){

var username = ?;

/*Login forms functionality */
    $("#submit-login").click(function(){

        userLogin();
    });
    function userLogin() {  

        var username = $('#user').val();
        var password = $('#pass').val();

        var data = $("#login-user").serialize();

    }

});

删除userLogin()函数中的
var
,以便在跨页面移动时使用全局声明的
username
变量

,如果刷新浏览器,javascript变量的值将丢失,以保留这些可供使用的值

window.sessionStorage();
您可以按如下方式存储/检索该值

window.sessionStorage.setItem('user',username);
var loggedInUser = window.sessionStorage.getItem('user');
但不建议在windows中存储密码,您必须实现/使用某些会话来创建登录会话

在当前场景中,您可以使用
username
而不使用
var
,以使其全局可用,但这不是正确的做法,因为您不应该使全局命名空间混乱

有一种方法可以将单个全局变量用作

myGlobalVariables = {
 "user" : <someValue>,
 ... <more variables as required in you r application>
 }
myGlobalVariables={
“用户”:,
... 
}

这样,您将只创建一个全局变量。

你好,Nancy,为什么要在用户名变量初始化中打问号?您已经知道将有字符串值,因此可以执行var username=“”;我有一个问号,这样就可以用答案代替。没有经过那里。很抱歉造成混淆@KejtI绝对同意你@Mitesh在我的情况下,这是一个单页应用程序,一旦登录。现在正在构建的大多数应用程序都是SPA,你只需使用路由进行导航,但最好遵循良好的实践,以防你的应用程序将来变得更大。