2010-12-07 11 views
2

エスケープキーが押されたときに自分自身を削除するように設定されたHTMLダイアログがあります。 HTMLダイアログにファイルフィールドがあります。ユーザがシステムファイルダイアログを使用してHTMLダイアログでファイルフィールドのファイルを選択してエスケープすると、そのイベントはシステムダイアログを閉じ、エスケープキーイベントをブラウザに渡します。ブラウザはHTMLダイアログも閉じます。 HTMLダイアログを開いたままにしておき、そのイベントをブラウザに表示させたくないです。ファイルを開くダイアログでエスケープキーを押すJavaScriptキーが押される

どうすればこの問題を解決できますか?

詳細情報:この動作はFirefoxにあります。

+0

将来の訪問者のために、[この質問](http://stackoverflow.com/questions/11647113/detecting-if-the-file-input-dialog-is-open)が私のために働く答えを持っていました。 –

答えて

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."); 
       } 
    } 
}); 

だけ欠点でありますシステムファイルダイアログが開いていないときにエスケープキーを使用してダイアログを閉じることができれば、これは動作しません。

関連する問題