Получение ключа Esc с помощью jQuery для документа, но не для содержимого - PullRequest
0 голосов
/ 09 января 2012

Представьте себе HTML-форму и библиотека jQuery загружена.Мне бы хотелось, чтобы, если кто-то в данный момент не сфокусирован на поле формы и щелкает клавишу Esc, появляется диалоговое окно с вопросом, хотят ли они закрыть окно формы (поскольку окно формы открывается как новая вкладка).

Если я попытаюсь захватить его на $ (документ), у меня возникнет проблема с всплывающим сообщением о событии, когда поля его поднимают, поэтому нажатие клавиши Esc в поле вызывает событие.

Как я могу эффективно (ключевое слово) предотвратить всплывающее окно события и захват при нажатии Esc, когда ни у одного поля нет фокуса?

Ответы [ 2 ]

1 голос
/ 09 января 2012

Вы должны будете использовать оператор If, чтобы проверить, что ни один из входов не имеет фокуса:

if ($('input').is(":focus")){ ... }

В мой пример я использую вводнажмите клавишу, чтобы проверить фокус.

Надеюсь, это поможет.

0 голосов
/ 09 января 2012

попробуйте это:

    var cancelClose=false; // This is a global variable

    $(document).ready(function(){
        $('input, textarea,select').each(
                function(){
                    $(this).focus(
                            function(){
                                cancelClose=true;
                            }
                        );
                    $(this).blur(
                            function(){
                                cancelClose=false;
                            }
                        );
                }
        );
    });

и затем при событии нажатия клавиши документа

произнесите:

  if (cancelClose)
         return false;
...