2014-10-07 110 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