2010-12-07 66 views
2

我有一个HTML对话框设置为在按下转义键时自行删除。我在HTML对话框中有一个文件字段。如果用户正在使用系统文件对话框为HTML对话框中的文件字段选择一个文件并按下转义,那么该事件将关闭系统对话框,并将转义关键事件传递给浏览器,该浏览器也会关闭HTML对话框。我希望HTML对话框保持打开状态,并且不希望该事件触发浏览器。在打开的文件对话框上按Esc键激发JavaScript键按

我该如何解决这个问题?

更多信息:此行为是在Firefox中。

+0

对于未来的访问者,[这个问题](http://stackoverflow.com/questions/11647113/detecting-if-the-file-input-dialog-is-open)有答案为我工作。 – 2013-07-15 19:01:21

回答

1

如果您使用的是jQuery UI的对话框,你可以检查在beforeClose事件ESC键,并使用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."); 
       } 
    } 
}); 

唯一的缺点是,如果你想当系统文件对话框没有打开时,允许使用退出键关闭对话框,这将阻止它工作。

相关问题