2010-05-07 30 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(); 
    } 
});