Есть ли способ продолжить просмотр модального всплывающего окна после входа пользователя? - PullRequest
0 голосов
/ 29 января 2019

У меня есть код, где пользователю необходимо войти в систему, чтобы просмотреть наше «всплывающее окно с ценами».После того, как пользователь войдет в систему, я хочу, чтобы всплывающее окно с ценами снова отображалось, как будто входа в систему никогда не было.Я не хочу, чтобы у пользователя был повторный щелчок, чтобы снова открыть всплывающее окно, если оно уже было открыто до входа в систему.

Я не могу использовать PHP, потому что используемое нами веб-приложение не можетиспользуй это.Мне действительно нужен этот ответ, чтобы быть JavaScript.Я использую Microsoft Visual Studio 2015 и полагаю, что это среда MVC.

Я пытался что-то изменить, чтобы проверить, не ошибся ли синтаксис.Я также пробовал location.reload, но у меня та же проблема, когда модал не появляется после обновления.

Этот код требует, чтобы пользователь вошел в систему для просмотра всплывающего окна.Проблема после входа в систему исчезает.

function CheckEmail(e) {
var data = $('#signInForm').serializeArray();
var controller = (typeof CURRENT_CONTROLLER != undefined) ? CURRENT_CONTROLLER : "Home";
ShowHideLoader(true);
if (isValidEmail(data[1]["value"])) {
    $.ajax({
        url: '/../Account/FindByNameOrEmailAsync',
        type: 'POST',
        dataType: "json",
        data: JSON.stringify({ "usernameOrEmail": data[1]["value"] }),
        context: this,
        contentType: 'application/json; charset=utf-8',
        success: function (data) {
            ShowHideLoader(false);
            //alert(data);
            if (data.status) {
                $("#emailCheck").hide();
                $("#enterPassword").fadeOut(500, function () {
                    $('#enterPassword').fadeIn(500);
                });
            } else {
                //$.get("Account/RegisterRedirect", { Email: $("#signin_email").val() });
                if (controller == "Business") {
                    $("#login-modal").modal("hide");
                    $("#signup-modal").modal('show');
                    SignupEmail.SetValue($("#signin_email").val());
                } else
                    window.location = data.returnUrl;
            }

            ShowHideLoader(false);
        },
        error: function () {
            alert("Error! Src: /Account/FindByNameOrEmailAsync");
            ShowHideLoader(false);
        }
    });
} else {
    $("#wrongEmail").fadeOut(500, function () {
        $('#wrongEmail').fadeIn(500);
    });

    $("#authInfo").hide();
    ShowHideLoader(false);
}

}

function ShowHideLoader(visible) {
if (visible)
    $(".signin-preloader").css("visibility", "visible");
else
    $(".signin-preloader").css("visibility","hidden");

}

function ShowHideSignUpLoader(visible) {
if (visible)
    $(".signup-preloader").css("visibility", "visible");
else
    $(".signup-preloader").css("visibility", "hidden");

}

function ValidateForm(data) {
if (data.res) {
    $("#SignInMenuItem").hide();
    $('#login-modal').modal("toggle");

    if (typeof HeaderMenu != "undefined")
        HeaderMenu.GetItemByName("SignInMenuItem").SetVisible(false);

    //$('#mainHeaderPanel').load('/Base/MainHeaderPanel?controller=' + data.controller);

    //if (data.controller == "Business")
    {
        //mainHeaderPanel.PerformCallback();
        //LoadSearchHistory();
        //$("#header-menu").append("<div class=\"user-info-header\"><div class=\"header-userName\">Welcome, <a data-toggle=\"dropdown\" class=\"dropdown-toggle\">" + data.userName + " <b class=\"caret\"></b></a><ul class=\"dropdown-menu\"><li class=\"divider\"></li><li class=\"nav-header\">User actions</li><li><a onclick=\"LoadPurchasedItemsCurrentUser()\">My purchased items</a></li><li><a href=\"/Account/Logoff\">Logout</a></li></ul></div><div class=\"btn-logoff header-log-off\"><a href=\"/Account/Logoff\">Logout</a></div></div>");
        //$("#HeaderMenu_DXI5_").hide();
    }
    // else

    if (showPopup == 'showPricing') {
        $("#pricingPopup").modal("show");

    }

    window.location.href = data.redirectUrl;


}
else {
    $("#passInfo").hide();
    $("#wrongPass").fadeOut(500, function () {
        $('#wrongPass').fadeIn(500);
    });
}

}

// В этой части проверяется, вошел ли пользователь в систему. Если нет, он должен войти в систему для просмотра всплывающего окна.

var showPopup;

var showModalForSignIn = function (seePricing) {
$("#login-modal").modal("show");
$("#authInfo").hide();
$("#needSigninMessage").show();

showPopup = seePricing;

}

1 Ответ

0 голосов
/ 29 января 2019

Я вижу только $("#pricingPopup") beging, использованный один раз в вашем коде.Без HTML я не вижу, что происходит, но может быть, у вас есть другой класс или ID в ценовом всплывающем окне, которое конфликтует с другим всплывающим окном.Для подобных вопросов лучше всего создать кодовую ручку, чтобы проиллюстрировать проблему.

По-прежнему ли всплывающее окно с ценами остается в DOM после входа в систему или шаблон удален из DOM?

Еслион все еще присутствует, вы можете просто показать его снова после входа в систему с помощью .show ().Если его больше нет, вам стоит посмотреть, что удаляет его из DOM.

...