“Enter”,“Space”和“Backspace”等键盘按钮被禁止

时间:2011-12-06 19:54:04

标签: jquery fancybox

在fancybox容器中,我已经加载了带有textarea字段的表单,并在其中加入了一些输入字段。输入控件和textarea正在工作,但是当我按下键盘上的Enter或Space或Backspace时,没有任何反应。

我假设FancyBox拦截按下这些键并阻止对它们进行任何进一步操作。我可以阻止或绕过此效果,或唯一的方法是将FancyBox降级到1.3.4版本吗?

2 个答案:

答案 0 :(得分:3)

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

(来自fancybox js文件的第395行)。 您使用的是什么版本的Fancybox?

更新

刚刚使用Fancybox v2.0.3测试了一个表单,我可以使用退格键,空格键并输入,没有任何问题。

答案 1 :(得分:0)

我相信我之前遇到过这个问题。但是,对我来说,它是用箭头键。我不认为我提到的钥匙有问题,但也许我使用的是旧版的fancybox。

我能在这里找到问题的解决方案: http://groups.google.com/group/fancybox/browse_thread/thread/b3c617631c465424?pli=1

它需要修改fancybox javascript文件。