我打开对话框点击按钮,如果我多次点击,则对话框打开两次。我不希望出现最顶层的小对话框,我只需要后面的对话框。 两个对话框中都显示相同的数据。 见附件图片
我正在使用以下代码
$(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>
另请查看以下截图:
答案 0 :(得分: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