2014-10-07 88 views
0

我打開對話框onclick按鈕,如果我點擊了多次,然後對話框打開兩次。我不想要最上面的小對話框出現,我只需要對話框後面。 在兩個對話框中都顯示相同的數據。 見圖片附UI對話框打開多次

我使用下面的代碼

$(document).ready(function() { 

    $("#policyDialog").html(""); 
    $('#policyDialog').dialog({ 
     autoOpen: false, 
    }); 
}); 

function onViewDetails(policyID) { 
    var policyID = policyID; 
    var policydetaildialog = ""; 
    var title = "title"; 

    $(".loading").css({ 
     'display': 'block' 
    }); 
    $('#policyDialog').dialog({ 
     width: 1000, 
     autoResize: false, 
     draggable: false, 
     hide: null, 
     modal: true, 
     height: "auto", 
     maxHeight: 500, 
     maxWidth: 1000, 
     minHeight: 450, 
     minWidth: 450, 
     title: title, 
     close: function (e) { 
      //e.preventDefault(); 
     } 
    }); 
    $.ajax({ 
     type: 'POST', 
     url: "xyz.jsp", 
     data: { 
      dataID: policyID 
     }, 
     success: function (response) { 
      //$("#policyDialog").html(response); 
      policydetaildialog = response; 
      $("#policyDialog").dialog('open'); 
      //$("#policyDialog").html(policydetaildialog); 
      $("#policyDialog").html(response); 
     }, 
     dataType: "html", 
     async: false 
    }); 

    /* $("#policyDialog").dialog('open'); 
      $("#policyDialog").html(policydetaildialog); 
      return false; */ 

    //$("#policyDialog"); 

    //$('#viewDetail').prop('disabled', true); 
} 

我呼籲低於

<button type="button" class="btn" id="viewDetail" onclick="onViewDetails('<%=policy.getPolicyId()%>');">View details</button> 

這個功能以下是我的html

<div id="policyDialog"></div> 

也在下面檢查截圖: enter image description here

+1

請發表相關html請 – Banana 2014-10-07 10:53:27

+0

刪除$('#policyDi alog')。dialog({autoOpen:false,});從document.ready – 2014-10-07 11:00:58

回答

1

你不需要每次單擊按鈕時創建另一個對話框。

移動你的對話框申報了點擊處理程序:

var _PolicyDialog; 
$(document).ready(function() { 
    $("#policyDialog").html(""); 
    _PolicyDialog=$('#policyDialog').dialog({ 
     autoOpen: false, 
     width: 1000, 
     autoResize: false, 
     draggable: false, 
     hide: null, 
     modal: true, 
     height: "auto", 
     maxHeight: 500, 
     maxWidth: 1000, 
     minHeight: 450, 
     minWidth: 450, 
     title: title, 
     close: function (e) { 
      //e.preventDefault(); 
     } 
    }); 
}); 

,並在你的Ajax功能,打開對話框如下:

_PolicyDialog.dialog("open"); 

看一看這個Example

+0

我試過這個,但沒有工作......第一件事 - 空白對話框打開文檔準備好..第二件事 - 第一次對話框顯示正常,但第二次它給出錯誤「未捕獲的錯誤:無法調用方法在對話框初始化;試圖調用方法'打開'「 – Monica 2014-10-07 11:11:59

+0

oops我的壞,我忘了提及,你需要將它分配給一個變量,並打開它使用變量。虐待更新我的回答 – Banana 2014-10-07 11:22:01

+0

不,它不會影響..給相同的錯誤 – Monica 2014-10-07 12:13:41