Нужен метод jQuery для перенаправления после нажатия кнопки - ASP.NET, VB.NET, jQuery, Javascript

0

У меня есть страница в одном из моих приложений ASP.NET(VB), которая полагается на сторонний сервис, который живет, и я использую jQuery для отображения наложения, если эта служба окажется недоступной. Я использовал тот же подход для других предупреждений в приложении - разница в этом заключается в том, что он должен перенаправляться после того, как пользователь нажимает кнопку во всплывающем окне предупреждения, чтобы удалить оверлей. Я пробовал несколько разных вещей, но во всех случаях перенаправление происходит до того, как предупреждение о наложении будет даже видимым. Я понимаю, почему, я просто не могу найти решение, чтобы исправить это. Любая помощь очень ценится! Я использую следующий код:

JQuery

function warn_redirect(msg, title, nextpage) {
    // show modal div
    //alert(obj.id);
    $("html").css("overflow", "hidden");
    $("body").append("<div id='popup_overlay'></div><div id='popup_window'></div>");
    $("#popup_overlay").addClass("popup_overlayBG");
    $("#popup_overlay").fadeIn("slow");

    // build warning box
    $("#popup_window").append("<h1>" + title + "</h1>");
    $("#popup_window").append("<p id='popup_message'><center>" + msg + "</center></p>");
    $("#popup_window").append("<div class='buttons'><center><button id='continue' class='positive' type='submit'>OK</button></center></div>");

    // attach action to button
    $("#continue").click(popup_remove_redirect(nextpage));

    // display warning window
    popup_position(400, 300);
    $("#popup_window").css({ display: "block" }); //for safari using css instead of show
    $("#continue").focus();
    $("#continue").blur();
}

function popup_remove_redirect(nextpage) {
$("#popup_window").fadeOut("fast", function () { $('#popup_window,#popup_overlay').trigger("unload").unbind().remove(); });
$("body", "html").css({ height: "auto", width: "auto" });
$("html").css("overflow", "");
window.location.href = nextpage;

}

(Я добавил window.location.href в свой стандартный код удаления всплывающих окон, но я пробовал другие подходы, включая запуск двух действий с нажатия кнопки.)

Вот код вызова VB.NET:

If Status = "DOWN" Then
            Dim clsUtility As New Utility
            clsUtility.Emailer("[email protected]", "[email protected]", "", "", "The Service Is Down!", "Please investigate")
            Dim ScriptString As String = "<script language='javascript'>"
            ScriptString += "warn_redirect('Some warning message.', 'Warning', 'AnotherPage.aspx');"
            ScriptString += "</script>"
            ClientScript.RegisterStartupScript(Me.GetType, "warnscript", ScriptString)
            'Response.Redirect("AnotherPage.aspx?ID=" & Session("SelKey") & "&UN=" & Header1.UserNumber) //this didn't work either
        End If
  • 0
    Затем используйте тайм-аут или обратный вызов fadeOut () для перенаправления

1 ответ

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

Вы звоните прямо сейчас:

$("#continue").click(popup_remove_redirect(nextpage));

Вы хотите сделать:

$("#continue").click(function() { popup_remove_redirect(nextpage); });
  • 0
    Brilliant! Thanks1
  • 0
    Хммммм ..... отлично работает на моем локальном компьютере разработчика, но я получаю следующую ошибку на моем устройстве разработчика после внесения исправления, рекомендованного RobH: Ошибка: значение свойства 'warn_redirect' равно нулю или не определено, а не функции объект.

Ещё вопросы

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