Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqueryui,dialog创建一个对话框,点击escape,第一个对话框退出_Jquery_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

jqueryui,dialog创建一个对话框,点击escape,第一个对话框退出

jqueryui,dialog创建一个对话框,点击escape,第一个对话框退出,jquery,jquery-ui,jquery-ui-dialog,Jquery,Jquery Ui,Jquery Ui Dialog,我有一个登录对话框,当用户没有填写所有字段时,可以创建一个警报对话框。然后点击escape将删除登录对话框,而不是警报对话框 jquery-1.7.2.js jqueryui-1.8.18.js // alert popup function alertMsg(szMsg) { $('#alertText').html(szMsg); $('#alertPopup').dialog('open'); } $('#alertPopup').dialog({ autoOpe

我有一个登录对话框,当用户没有填写所有字段时,可以创建一个警报对话框。然后点击escape将删除登录对话框,而不是警报对话框

jquery-1.7.2.js jqueryui-1.8.18.js

// alert popup
function alertMsg(szMsg)
{
    $('#alertText').html(szMsg);
    $('#alertPopup').dialog('open');
}

$('#alertPopup').dialog({
    autoOpen: false,
    width: 360,
    resizable: false,
    modal: true,
    show: 'scale',
    hide: 'scale',
    buttons: {
        "OK": function() { 
            $(this).dialog("close"); 
        } 
    }
});

// login dialog
$('#loginDialog').dialog({
    open: function() {
        $('#company').focus();
    },
    autoOpen: false,
    width: 360,
    resizable: false,
    modal: true,
    show: 'scale',
    hide: 'scale',
    buttons: {
        "Login": function() { 
            var szCompany = $('#company').val();
            var szUser = $('#user').val();
            var szPassword = $('#password').val();

            if ((/^\s*$/).test(szCompany) ||
                            (/^\s*$/).test(szUser) ||
                            (/^\s*$/).test(szPassword))
            {
                // this is the alert call that creates the bug
                alertMsg('You need to fill in Company, User,' +
                                ' and Password');
            }
            else
            {
                $(this).dialog("close"); 
                alertMsg(szUser + ' (who works for ' +
                        szCompany + ' and has a secret password of ' +
                        szPassword + ', which is no longer a secret)' +
                        ' check back soon for a real login experience.');
            }
        }, 
        "Cancel": function() { 
            $(this).dialog("close"); 
        } 
    }
});

// handle enter key for login dialog
$('#loginDialog').find('input').keypress(function(e) {
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
        $(this).parent().parent().parent().parent().
            find('.ui-dialog-buttonpane').find('button:first').click();
        return false;
    }
});

在登录对话框中将closeOnEscape选项设置为false,在警报对话框中设置为true默认情况下为true

那么在警报关闭后,如何在登录对话框中重新启用closeOnEscape?此外,在第一次转义删除登录对话框后,第二个转义不会删除警报。在警报对话框的关闭事件处理程序上,可以将登录对话框的closeOnEscape属性设置为true。codeclose:functionevent,ui{$loginDialog.dialogoption,closeOnEscape,false;}code.Progress:现在一切都很好,除了警报不会用转义键关闭外,我甚至尝试显式地将closeOnEscape设置为true。引用对话框以在警报中重新启用其closeOnEscape的最佳方式是什么,以便警报可以用于其他对话框?注意:如果我从“登录”按钮而不是启动“登录”对话框发出警报,它将在退出时正确关闭。