2010-12-07 65 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."); 
       } 
    } 
}); 

唯一的缺點是,如果你想當系統文件對話框沒有打開時,允許使用退出鍵關閉對話框,這將阻止它工作。

相關問題