Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If语句未按预期执行_Javascript_Jquery_Html - Fatal编程技术网

Javascript If语句未按预期执行

Javascript If语句未按预期执行,javascript,jquery,html,Javascript,Jquery,Html,上面的代码旨在检查localStorage变量是否存在。如果是,则只允许按下注销按钮。如果这两种形式不起作用。一旦它完成了,它应该重新检查变量是否被设置,然后按照我上面所说的做。但是,当用户登录并允许表单运行时,它会忽略它。如果你刷新,但它的工作很好。我一辈子都搞不懂为什么会发生这种事,这让我开始生气了。任何帮助都将不胜感激。在您的else声明中,请尝试添加: $(document).ready(function(){ logger(); }); function logger()

上面的代码旨在检查localStorage变量是否存在。如果是,则只允许按下注销按钮。如果这两种形式不起作用。一旦它完成了,它应该重新检查变量是否被设置,然后按照我上面所说的做。但是,当用户登录并允许表单运行时,它会忽略它。如果你刷新,但它的工作很好。我一辈子都搞不懂为什么会发生这种事,这让我开始生气了。任何帮助都将不胜感激。

在您的
else
声明中,请尝试添加:

$(document).ready(function(){
    logger();
});
function logger()
    {
        if(localStorage.getItem("status") === null)
            {
                $("#test").html("Not logged in.");
                $("#buttonlogin").click(function(){
                    var ul = $("#userlogin").val();
                    var pl = $("#passlogin").val();
                    $.post("includes/logger.php", {type : "login", user : ul, pass : pl}, function(dlogin){
                        if(dlogin == 1)
                            {
                                $("#outlogin").html("Please enter a username.");
                                $("#userlogin").focus();
                            }
                        else if(dlogin == 2)
                            {
                                $("#outlogin").html("Please enter password.");
                                $("#passlogin").focus();
                            }
                        else if(dlogin == 3)
                            {
                                $("#outlogin").html("This username doesn't exist.");
                                $("#userlogin").focus();
                            }
                        else if(dlogin == 4)
                            {
                                $("#outlogin").html("This username and password don't match.");
                                $("#userlogin").focus();
                            }
                        else
                            {
                                localStorage.setItem("status", dlogin);
                                logger();
                            }
                    });
                });
                $("#buttonregister").click(function(){
                    var ur = $("#userregister").val();
                    var pr = $("#passregister").val();
                    var cpr = $("#confirmpassregister").val();
                    $.post("includes/logger.php", {type : "register", user : ur, pass : pr, cpass : cpr}, function(dregister){
                        if(dregister == 1)
                            {
                                $("#outregister").html("Please enter a username.");
                                $("#userregister").focus();
                            }
                        else if(dregister == 2)
                            {
                                $("#outregister").html("Please enter a password.");
                                $("#passregister").focus();
                            }
                        else if(deregister == 3)
                            {
                                $("#outregister").html("Please enter a confirm password.");
                                $("#cpassregister").focus();
                            }
                        else if(dregister == 4)
                            {
                                $("#outregister").html("Password and confirm password do not match.");
                                $("#passregister").focus();
                            }
                        else if(dregister == 5)
                            {
                                $("#outregister").html("This username is already taken.");
                                $("#userregister").focus();
                            }
                        else
                            {
                                localStorage.setItem("status", dregister);
                                logger();
                            }
                    });
                });
            }
        else
            {
                $("#test").html("You are logged in.");
                $("#buttonlogout").click(function(){
                    localStorage.removeItem("status");
                    logger();
                });
            }
    }
如果我正确理解了您的问题,那么发生的情况是,这些事件是在您第一次运行
$(“#buttonlogin”)时注册的。单击(function()…


再次调用
logger()
,第二次调用
if
语句为false并不重要。如果要禁用这些回调,必须显式执行。

尝试这样做:
if(!localStorage.getItem(“status”))
仍然以同样的方式工作。检查它是否存在的有趣方法。您验证了dlogin响应是否正确吗?因为您设置localstorage变量的唯一位置是在else语句中。是的,我设置了Sandcar。问题是。单击“绑定元素”,这是不知道的。不过谢谢。只需快速搜索即可ion的意思是jQuery.click本质上是.bind('click')?如果是这样的话,那就很有意义了。它本质上是.on('click',handler)。'bind'从1.7开始就有点不推荐了。无论如何,bind和.on本质上是一样的。所以它做了一个bind,尽管这很有意义。非常感谢。
$('#buttonlogin').unbind('click');
$('#buttonregister').unbind('click');