Невозможно предотвратить действие пробела по умолчанию в firefox

#jquery

#jquery

Вопрос:

При нажатии кнопки открывается окно. В этом окне мало кнопок. При переходе к кнопке закрытия и нажатии на пробел или ввод окно закроется. Я хочу ограничить закрытие окна при нажатии клавиши пробела. Он отлично работает в IE и Chrome, но не в Firefox. Я попытался использовать событие.which == 32 и event.keyCode == 32, но безуспешно.

 function disablespacekey()
{
  $(document).on("keydown", function (event)
  {        
    if (event.keyCode == 32)
    {
        event.preventDefault();
    }
});
}
 

В firefox, когда я нажимаю кнопку, управление переходит к event.preventDefault(), но это не работает и закрывает окно.

Комментарии:

1. не могли бы вы опубликовать jsfiddle

Ответ №1:

Что ж, метод preventDefault() с событиями нажатия клавиш и нажатия клавиш не работает в firefox. Я использовал метод preventDefault () с помощью keyup и работает firefox. Спасибо всем за ваш вклад. 🙂

Ответ №2:

Это работает для меня. я использовал jquery.

 $(document).ready(function(){
  $(document).on("keydown", function (event)
  {        
    if (event.keyCode == 32)
    {
        event.preventDefault();
    }
});
});
 

Демонстрация: http://plnkr.co/edit/zHVGZm6zqsgtAtY4I0NY?p=preview

Ответ №3:

Попробуйте это, протестировано и в Firefox:

 function disablespacekey()
    {
      $(document).on("keydown", function (event)
      {        
        return event.which !== 32;
    });
}
 

скрипка

Комментарии:

1. Управление приходит до инструкции return, но закрывает окно в Firefox. В Chrome и IE нажатие пробела ограничено, и окно не закрывается.