2012-11-19 268 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