3

见:http ://www.airbnb.com/

在搜索栏中,开始输入“san f”(无引号,全部小写),然后按 Return(或 Enter)。“旧金山”是自动完成的。这很好!

现在清除搜索字段并重新开始。键入“San F”并繁荣 - 一旦您按下 Shift,“旧金山”就会自动完成。这不是预期的。

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

有谁之前经历过这个吗?

4

3 回答 3

2

在自动完成中尝试搜索选项,如下所示:

$(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();  
    }
});
于 2015-09-08T05:50:20.883 回答
1

要解决此问题:

向 KEY 对象添加:

    SHIFT: 16,
    CTRL: 17,
    ALT: 18

在 onChange 函数的最顶部添加:

if ( jQuery.inArray(lastKeyPressCode, [KEY.SHIFT, KEY.CTRL,
       KEY.ALT]) !== -1 )
                return; 
于 2010-05-07T23:35:20.273 回答
1

我认为是在自动完成配置autoFill: true中定义的。删除这个它会解决问题。但是在写“san f”之后它不会自动填充“san Francisco, CA”。

于 2010-06-01T11:47:13.800 回答