簡體   English   中英

如果語句不符合預期

[英]If Statement Not Acting As Expected

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

上面的代碼旨在檢查localStorage變量是否存在。 如果是,則僅允許按下注銷按鈕。 如果不是,則讓這兩種形式起作用。 一旦完成任一操作,就應該重新檢查是否設置了變量,然后按照我上面所說的進行操作。 但是,當用戶登錄並允許表單運行時,它將忽略它。 如果您刷新,則可以正常工作。 我無法為自己的一生弄清為什么會這樣,而且它開始激怒我。 任何幫助,將不勝感激。

在您的else語句上,嘗試添加:

$('#buttonlogin').unbind('click');
$('#buttonregister').unbind('click');

如果我正確地理解了您的問題,那是在您第一次運行$("#buttonlogin").click(function()...時注冊了這些事件。

再次調用logger()if語句第二次為false都沒關系。 如果要禁用這些回調,則必須顯式執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM