1

我正在使用 JQuery 对话框 UI 让用户确认页面上的操作。如果是,将进行 API 调用,然后窗口将重定向。如果否,则对话框关闭。

在重定向之前,我想在实际对话框中显示“成功”消息,例如“执行此操作”。关于如何实现这一点的任何想法?

这是我的代码:

$( "#dialog-confirm" ).dialog({
    resizable: false,
    height:140,
    modal: true,
    buttons: 
    {
        "Yes": function() 
        {


                    var request = '123';
            var url = '<?= $this->baseURL; ?>?rn=' + request;
                $.getJSON(url, function(data) {});  
            }


            var msg = 'Action performed';

                    //?   How do I display this message in the modal dialog window???

                    $( this ).dialog( "close" );
            var url = '<?= $this->moduleURL; ?>/cancel';        
            window.location.href = url; 


        },

        "Nevermind": function() {
                $( this ).dialog( "close" );
        }
    }
});
4

2 回答 2

2

这可能是一种方式,您清空对话框 div 并附加新文本并设置一个超时,3 秒后 diloge 关闭并发生重定向

$( "#dialog-confirm" ).dialog({
resizable: false,
height:140,
modal: true,
buttons: 
{
    "Yes": function() 
    {


                var request = '123';
        var url = '<?= $this->baseURL; ?>?rn=' + request;
            $.getJSON(url, function(data) {});  
        }


        var msg = 'Action performed';

        $( "#dialog-confirm" ).empty();

        $( "#dialog-confirm" ).text(msg);


 setTimeout(function() {
     $( this ).dialog( "close" );
       var url = '<?= $this->moduleURL; ?>/cancel';        
        window.location.href = url; 
}, 3000);



    },

    "Nevermind": function() {
            $( this ).dialog( "close" );
    }
}
});
于 2013-03-25T08:15:28.800 回答
2

使用 AJAX 方法,并将 async 设置为 false。这将确保在继续重定向之前请求已返回。

要设置对话框内容,您可以使用.html().

$("#dialog-confirm").dialog({
    resizable: false,
    height: 140,
    modal: true,
    buttons: {
        "Yes": function () {
            var request = '123';
            var url = '<?= $this->baseURL; ?>?rn=' + request;
            var msg = 'Action performed';
            $("#dialog-confirm").html(msg);

            $.ajax({
                dataType: "json",
                url: url,
                async: false,
                success: function (data) {
                    $("#dialog-confirm").dialog("close");
                    var url = '<?= $this->moduleURL; ?>/cancel';
                    window.location.href = url;
                }
            });
        },
        "Nevermind": function () {
            $(this).dialog("close");
        }
    }
});
于 2013-03-25T08:16:08.373 回答