UI对话框多次打开

时间:2014-10-07 10:41:21

标签: jquery css jquery-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 个答案:

答案 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

相关问题