带有确认的Javascript警报

时间:2009-12-18 15:16:59

标签: javascript javascript-events telerik

我的页面上有一个javascript警告弹出窗口。我遇到的问题是,它不是等待用户实际点击确定按钮,而是简单地进行重定向,这是在点击确定按钮后应该做的事情。任何人都可以帮我调整我的代码,以使其工作,因为它应该取悦?

function f()
{

    ar ape =radalert('<div align=""center"" style=""font-weight: bold;""> OPEN BOX HERE</div>', 123, 200);
if(ape)window.location.href = "/Default.aspx";
Sys.Application.remove_load(f);
}

Sys.Application.add_load(f);

3 个答案:

答案 0 :(得分:4)

您可以使用add_close方法附加回调函数,以了解警报何时关闭:

var win = radalert('foo');
win.add_close(function () {
  alert('bar'); // This will be executed when the radalert is closed.
});

更多信息:

答案 1 :(得分:2)

你没有使用JavaScript alert(在内置函数意义上),看起来你正在使用名为radalert的东西(来自Telerik)。这意味着它不能表现得像一个JavaScript alert,这会使脚本处理在屏幕上停止时暂停。

我对Telerik一无所知,但大多数这些警报替换提供了一个可以传递的回调,当警报被清除时会被触发。这就是您想要window.location.href = ...代码的地方。

通常看起来像这样:

function blah() {

    niftyAlertThingy("Here's my message", {
        onOK: function() {
            window.location.href = "/Default.aspx";
            // etc.
        }
    });
}

blah函数立即返回 ,警告仍在页面上;然后,当用户单击“确定”时,警报代码会调用您的回调。

我确信Telerik radalert有类似的东西......

答案 2 :(得分:1)

我认为你的代码需要更多的解释,也可能需要你的代码(只需要关于你如何处理“OK”的相关代码点击)。我对telerik的经验并不好。我建议你尝试jQuery UI。它可以让您更好地控制如何处理事件以及在何处处理。

示例(来自here

$(function(){

    $("#dialog").dialog({
    autoOpen: false,
    modal:true,
    buttons : {
        "Yes" : function() {              
            $(this).dialog("close");
            eval($("#<%= hdnBtnPostback.ClientID %>").val());
        },
        "No" : function() {
            $(this).dialog("close");
        },
        "Maybe": function() {
            $(this).dialog("close");
            //what should we do when "Maybe" is clicked?
        }        
    }
    });
});