在fancybox容器中,我已经加载了带有textarea字段的表单,并在其中加入了一些输入字段。输入控件和textarea正在工作,但是当我按下键盘上的Enter或Space或Backspace时,没有任何反应。
我假设FancyBox拦截按下这些键并阻止对它们进行任何进一步操作。我可以阻止或绕过此效果,或唯一的方法是将FancyBox降级到1.3.4版本吗?
答案 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文件。