jqueryui,dialog创建一个对话框,点击escape,第一个对话框退出
我有一个登录对话框,当用户没有填写所有字段时,可以创建一个警报对话框。然后点击escape将删除登录对话框,而不是警报对话框 jquery-1.7.2.js jqueryui-1.8.18.jsjqueryui,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
// 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的最佳方式是什么,以便警报可以用于其他对话框?注意:如果我从“登录”按钮而不是启动“登录”对话框发出警报,它将在退出时正确关闭。