Если заявление не действует как ожидалось

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. Если это тогда, то только разрешить кнопку выхода из системы. Если нет, то пусть две формы будут работать. Как только это будет сделано, либо он должен перепроверить, если переменная установлена, а затем сделать, как я сказал выше. Однако он игнорирует его, когда пользователь входит в систему и разрешает запуск форм. Однако, если вы обновляете, это прекрасно работает. Я не могу, чтобы жизнь меня определяла, почему это происходит, и это начинает меня раздражать. Любая помощь будет оценена по достоинству.

  • 0
    Попробуйте так: if(!localStorage.getItem("status"))
  • 0
    Все еще работает так же. Интересный способ проверить, существует ли он или нет.
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

В своем заявлении else попробуйте добавить:

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

Если я правильно понимаю вашу проблему, что происходит, эти события регистрируются при первом запуске $("#buttonlogin").click(function()...

Не имеет значения, что вы снова вызываете logger() а оператор if - во второй раз. Если вы хотите отключить эти обратные вызовы, вы должны сделать это явно.

  • 0
    Подойдёт, но быстрый вопрос, означает ли это, что jQuery .click по сути .bind ('click')? Если так, это имело бы такой смысл.
  • 0
    Это обязательно .on ('click', обработчик). «bind» является устаревшим с 1.7
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню