【问题标题】:Prevent user to do any action on dialog阻止用户对对话框执行任何操作
【发布时间】:2018-02-06 06:44:59
【问题描述】:

我的页面有两个 jquery 对话框。如果两者在不同时间打开,则没有问题。仅当两个对话框一起打开时才会出现问题。在我的情况下,第一个对话框由用户操作打开,第二个对话框由系统打开(此对话框将在会话超时发生时触发)。现在首先由用户打开,然后立即打开第二个对话框,我需要限制用户单击对话框 1 上的任何内容。基本上我们应该限制用户执行任何操作对话框之一。

我尝试了 resizable: false, draggable: false 但这些都没有帮助。有什么办法可以解决这个问题。

对话 1

$('.status-dialog').dialog({
            autoOpen: false,
            width: 400,
            modal: true,
            closeOnEscape: false,
            buttons: [{
                text: yes,
                click: fun1
            },
            {
                text: no,
                click: fun2

            }]
        });

对话 2

$('body').append('<div title="Timeout" id="timeout-dialog">' expired </div>');
        $('#sessionTimeout-dialog').dialog({
            autoOpen: false,
            resizable: false,
            draggable: false,
            width: 400,
            modal: true,
            closeOnEscape: false,
            open: function () { $(".ui-dialog").hide(); },
            buttons: {
                "Continue": function () {
                    $(this).dialog('close');
                }
            }
        });

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    也许让您的代码在系统自己触发一个对话框之前关闭所有其他对话框?您当然可以在代码之间的某处添加此条件,在该处系统会触发对话框。

    【讨论】:

    • 是否有任何 jquery 实用方法可以在对话框 2 打开之前关闭所有其他对话框?
    • 对此不太确定。但是你可以给他们一个类名。和 $('.classname').dialog('close');应该做的伎俩。
    • 尝试使用以下语法,但没有一个关闭了对话框。 1) $('.status-dialog').dialog('close'); 2) $('.status-dialog').dialog().dialog("close"); 3) jQuery(".status-dialog").dialog('close');
    • 似乎是因为对话框是用 id 初始化的,但我们试图用可能不起作用的类选择器关闭。但它应该是国际海事组织。也许您可以尝试关闭每个班级项目而不是整个班级。 $.each('.status-dialog', function(){ $(this).dialog('close') });
    • $.each('.status-dialog', function(){ $(this).dialog('close') });为我工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    相关资源
    最近更新 更多