Кнопки клавиатуры, такие как «Enter», «Пробел» и «Backspace», подавлены - PullRequest
3 голосов
/ 06 декабря 2011

В контейнере fancybox я загрузил форму с полем textarea и некоторыми полями ввода в нем. Элементы управления вводом и текстовое поле работают, но когда я нажимаю клавишу Enter, пробел или клавишу Backspace на клавиатуре, ничего не происходит.

Я сделал предположение, что FancyBox перехватывает нажатие этих клавиш и предотвращает любые дальнейшие действия с ними. Могу ли я заблокировать или обойти этот эффект, или единственный способ - понизить FancyBox до версии 1.3.4?

Ответы [ 2 ]

3 голосов
/ 07 декабря 2011

Fancybox v.2.x перехватывает эти клавиши для навигации и закрытия

keys: {
next: [13, 32, 34, 39, 40], // enter, space, page down, right arrow, down arrow
prev: [8, 33, 37, 38], // backspace, page up, left arrow, up arrow
close: [27] // escape key
}

, однако игнорирует ключевые события в элементах формы

if (keys) {
D.bind('keydown.fb', function (e) {
// Ignore key events within form elements
if ($.inArray(e.target.tagName.toLowerCase(), ['input', 'textarea', 'select', 'button']) > -1) {    return; }
....

(из строки 395 fancybox jsфайл).Какую версию Fancybox вы используете?

ОБНОВЛЕНИЕ :

Только что протестировал форму с Fancybox v2.0.3, и я могу использовать backspace, пробел и вводить без проблем.

0 голосов
/ 07 декабря 2011

Мне кажется, я уже сталкивался с этой проблемой.Однако для меня это было с помощью клавиш со стрелками.Не думаю, что у меня были проблемы с ключами, которые вы упомянули, но, возможно, я использовал очень старую версию fancybox.

Я смог найти решение моей проблемы здесь: http://groups.google.com/group/fancybox/browse_thread/thread/b3c617631c465424?pli=1

Требуется модификация файла javascript fancybox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...