0
$(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 変数が存在するかどうかを確認するためのものです。その場合は、ログアウト ボタンを押すことのみを許可します。そうでない場合は、2 つのフォームを機能させます。いずれかで完了したら、変数が設定されているかどうかを再確認してから、上記のように実行することになっています。ただし、ユーザーがログインしてフォームの実行を許可すると、それは無視されます。ただし、リフレッシュすると正常に動作します。私は一生、なぜこれが起こっているのか理解できず、私を怒らせ始めています. どんな助けでも大歓迎です。

4

1 に答える 1

1

elseステートメントに、次を追加してみてください。

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

問題を正しく理解している場合、これらのイベントは最初に実行したときに登録されます$("#buttonlogin").click(function()...

logger()もう一度呼び出しても問題はなく、ifステートメントは 2 回目は false です。これらのコールバックを無効にしたい場合は、明示的に行う必要があります。

于 2013-11-08T20:00:50.940 に答える