2012-11-19 218 views
0

我想关闭一个jQuery模态窗口有一个按钮,是模态内的表单中......jQuery的关闭对话框

$("#btnCancel").button().on('click', function (event) { 
    event.preventDefault(); 
    $("#modalDlgWindow").dialog("close"); 
}); 

function loadDialog(tag, event, target) { 
    event.preventDefault(); 
    event.stopPropagation(); 
    var $loading = $('<img src="../../Content/assets/images/nivo-loader.gif" alt="loading" class="ui-loading-icon">'); 
    var $url = $(tag).attr('href'); 
    var $title = $(tag).attr('title'); 
    $("#modalDlgWindow").empty(); 
    $("#modalDlgWindow") 
     .append($loading) 
     .load($url) 
     .dialog({ 
      autoOpen: false 
      , resizable: false 
      , autoResize: true 
      , title: $title 
      , width: 'auto' 
      , modal: false 
      , height: 'auto' 
      , show: 'fade' 
      , position: [10, 50] 
      , hide: 'fade' 
     }); 
    $("#modalDlgWindow").dialog('open'); 
}; 

它与.fadeOut(500).empty(),所以我认为它也将与合作.dialog('close')但它没有。有没有人有我的问题的解决方案?

回答

1

在这里看到:How to close jQuery Dialog within the dialog?

尝试:

$("#modalDlgWindow").closest('.ui-dialog-content').dialog('close'); 

或者,你可以添加一个取消(和提交)按钮,如下所示:

function loadDialog(tag, event, target) { 
    event.preventDefault(); 
    event.stopPropagation(); 
    var $loading = $('<img src="../../Content/assets/images/nivo-loader.gif" alt="loading" class="ui-loading-icon">'); 
    var $url = $(tag).attr('href'); 
    var $title = $(tag).attr('title'); 
    $("#modalDlgWindow").empty(); 
    $("#modalDlgWindow") 
     .append($loading) 
     .load($url) 
     .dialog({ 
      autoOpen: false 
      , resizable: false 
      , autoResize: true 
      , title: $title 
      , width: 'auto' 
      , modal: false 
      , height: 'auto' 
      , show: 'fade' 
      , position: [10, 50] 
      , hide: 'fade' 
     }); 

     $("#modalDlgWindow").dialog("option", "buttons", { 
       "Submit": function() { 
         // Get form values here 

         $.ajax({ 
           type: 'POST', 
           //post form information here, 
           success: function (msg) { 
           if (msg.d) { 
           $(this).dialog("close");          
           } 
           }, 
           error: function() { 
           alert("Error! Try again..."); 
           } 
         }); 
        }, 
       "Cancel": function() { 
        $(this).dialog("close"); 
       } 
      ); 
    $("#modalDlgWindow").dialog('open'); 
}; 
+0

我已经尝试过这一点,但它没有工作我也试过 $(this).parents(“。ui-dialog-content”)。dialog('close') 仍然没有工作... – Flavio

+0

编辑 - 尝试用'$( “#modalDlgW indow“)'。 – mccannf

+0

仍然无法正常工作......是因为在对话框中我有局部视图吗?我试图做alert($(“#modalDlgWindow”))来查看对象是否存在,问题可能来自那里,但我得到了[object OBJECT],所以从我可以断定它存在并应该是可能的关闭它,有没有其他方法?在此先感谢您的提示。 – Flavio