2010-05-07 35 views
2

见的行为相同:http://www.airbnb.com/jQuery的自动完成的问题 - Shift键返回键

在搜索栏中,开始输入“三F”(不包括引号,全部小写),然后按回车(或Enter)。 “旧金山”是自动完成的。这很好!

现在清除搜索栏并重新开始。键入“San F”和繁荣 - “旧金山”会在您点击Shift时自动完成。这不是预期的。

这发生在FF & Safari中,但在其他地方未经测试。我浏览了jQuery自动完成源代码,看起来很正常。

有没有人遇到过这个?

+0

它不只是转移。它的标签也是。基本上,您的代码将键盘分为三类:输入文字的字符,不执行任何操作的键码,以及确认选项卡,移位和输入的键码。它们可能不是基于特定的密码bla = bla,而是它们的一个范围 – XGreen 2010-05-07 23:27:59

回答

1

为了解决这个问题:

到Key对象添加:

SHIFT: 16, 
    CTRL: 17, 
    ALT: 18 

而到了的onChange功能添加的顶部:

if (jQuery.inArray(lastKeyPressCode, [KEY.SHIFT, KEY.CTRL, 
     KEY.ALT]) !== -1) 
       return; 
1

我认为,在定义了自动完成配置autoFill: true。删除这一个,它将解决问题。但在这种情况下,写完“san f”后,它不会自动填充“旧金山,加利福尼亚州”。在自动完成

0

尝试搜索选项如下:

$(function() { 
var availableTags = [ 
    "ActionScript", 
    "AppleScript", 
    "Asp", 
    "BASIC", 
    "C", 
    "C++", 
    "Clojure", 
    "COBOL", 
    "ColdFusion", 
    "Erlang", 
    "Fortran", 
    "Groovy", 
    "Haskell", 
    "Java", 
    "JavaScript", 
    "Lisp", 
    "Perl", 
    "PHP", 
    "Python", 
    "Ruby", 
    "Scala", 
    "Scheme" 
]; 
$("#tags").autocomplete({ 
    source: availableTags, 
    search: function(event, ui) { 
     if(event.which == 16 || event.which == 17) 
     event.preventDefault(); 
    } 
});