Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > return false в Опере


Автор: SkyHawk 6.10.2010, 11:36
Народ. Помогите.
Пытаюсь запретить ввод определенных символов с клавиатуры. Первый шаг - запретить вообще ввод всех символов. Делаю так:
Код

  document.onkeydown=function ()
  {
    return false;
  }



Работает нормально ("отменяет нажатия клавиш"), во всех браузерах, кроме Оперы - в ней любые символы вводятся нормально. В консоли ошибок - чисто... Как можно победить Оперу, что ей не нравится?

Автор: CruorVult 6.10.2010, 12:21
Используйте:
Код

document.onkeypress

Автор: SkyHawk 6.10.2010, 13:45
 smile  smile  smile 

Спасибо большое!!! Действительно, onkeypress работает!!!
А поясните пожалуйста, в чем дело? Почему Опера так себя ведет? Чтобы знать источник несоответствия, и в дальнейшем не наступать на эти или другие подобные грабли.

Автор: CruorVult 6.10.2010, 14:23
Цитата(SkyHawk @  6.10.2010,  13:45 Найти цитируемый пост)
А поясните пожалуйста, в чем дело? Почему Опера так себя ведет?

событие keypress наступает после keydown. В опере даже если keydown возвращает false, всеравно наступает событие keypress, по которому и осуществляется инициализация нажатой клавиши.

Автор: SkyHawk 7.10.2010, 05:19
Не, я понимаю, что keypress после keydown... Вопрос, почему keydown возвращает false... Ну да ладно, главное - нашли решение. Еще раз спасибо!

P.S. Что-то все больше мне начинает нравиться хром... smile

Автор: CruorVult 7.10.2010, 09:46
Цитата(SkyHawk @  7.10.2010,  05:19 Найти цитируемый пост)
 Вопрос, почему keydown возвращает false


Цитата

 document.onkeydown=function ()
  {
    return false;
  }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)