键盘选择不在safari中工作

时间:2009-09-30 07:47:59

标签: javascript safari

我正在尝试使用ruby on rails,jquery和一个结合了两个名为jrails_auto_complete的插件来创建一个自动完成框。它在FF中工作正常但在safari 4中键盘选择不起作用。我想尝试为我的应用程序修复此问题,但似乎无法做到这一点。我不太了解java脚本,也许有人可以提供帮助。 safari 4中的关键操作是否存在任何已知问题?

插件有键盘代码:

onKeyPress: function(e) {
            var autocomplete = this;

            if (this.active) {
                switch (e.keyCode) {
                    case 9:     // tab
                    case 13:    // return
                        this.selectEntry();
                        stopEvent(e);
                    case 27:    // esc
                        this.hide();
                        this.active = false;
                        stopEvent(e);
                    case 37:    // left
                    case 39:    // right
                        return;
                    case 38:    // up
                        this.markPrevious();
                        this.render();
                        stopEvent(e);
                        return;
                    case 40:    // down
                        this.markNext();
                        this.render();
                        stopEvent(e);
                        return;
                }
            }

我做了一些调试,发现包括字母键和返回键在内的某些键会调用此函数......我不知道为什么有些键不会被onKeyPress拾取。

由于

1 个答案:

答案 0 :(得分:2)

使用keydown事件而不是keypress来检测非字符键。这种情况一直如此,但Safari在发送的密钥中与其他浏览器略有不同。

Explanation