2013-03-25 119 views
1

我正在使用JQuery对话框UI让用户确认页面上的操作。如果是,则会调用API调用,然后窗口将重定向。如果否,对话框关闭。JQuery对话框:选择确认选项后在对话框中显示消息

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

这里是我的代码:

$("#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"); 
     } 
    } 
}); 

回答

2

这可能是一种方式,您清空对话框的div UND新的文字,并设置一个timout和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"); 
    } 
} 
}); 
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"); 
     } 
    } 
});