我有一个HTML对话框设置为在按下转义键时自行删除。我在HTML对话框中有一个文件字段。如果用户正在使用系统文件对话框为HTML对话框中的文件字段选择文件并按下escape,则该事件将关闭系统对话框,并将转义键事件传递给浏览器,浏览器也会关闭HTML对话框。我希望HTML对话框保持打开状态,并且不希望该事件触及浏览器。
我该如何解决这个问题?
更多信息:此行为在Firefox中。
答案 0 :(得分:1)
如果您正在使用jQuery uI对话框,则可以检查beforeClose事件中的转义键,并使用e.preventDefault来阻止它关闭:
$( ".selector" ).dialog({
beforeClose: function(event, ui) {
if(event.keyCode == 27) {
alert("Esc key tried to close the dialog");
event.preventDefault();
} else {
alert("You used something other than the escape key to close the dialog.");
}
}
});
唯一的缺点是,如果您希望在系统文件对话框未打开时允许使用转义键关闭对话框,这将阻止其工作。