2011-02-10 64 views
2

我想显示由focus()事件触发的自动完成列表,但看起来像只在我第一次关注“id”文本时才起作用框,然后我专注于“id2”文本框,并将注意力集中在“id”文本框上,我的自动完成列表将不会显示,原因何在?JQuery UI显示由focus()事件触发的自动完成列表

<link media="all" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js"></script> 

<script type="text/javascript"> 
    $(function() { 
     $('#id').autocomplete({ 
      source: ["ActionScript", 
         "AppleScript", 
         "Asp", 
         "BASIC", 
         "C", 
         "C++", 
         "Clojure", 
         "COBOL", 
         "ColdFusion", 
         "Erlang", 
         "Fortran", 
         "Groovy", 
         "Haskell", 
         "Java", 
         "JavaScript", 
         "Lisp", 
         "Perl", 
         "PHP", 
         "Python", 
         "Ruby", 
         "Scala", 
         "Scheme" 
        ], 
      minLength: 0 
     }); 

     $('#id').focus(function(){   
      $(this).trigger('keydown.autocomplete'); 
     }); 
    }); 
</script> 


<input type="text" id="id"> 

<input type="text1" id="id2"> 

我想显示的对焦()事件触发自动完成列表中,但看起来像它仅适用于第一次,当我集中在“ID”文本框,然后我重点在“id2”文本框中,并重点关注“id”文本框,我的自动完成列表将不会显示,原因何在?

<script type="text/javascript"> 
$(function() { 
    $('#id').autocomplete({ 
     source: ["ActionScript", 
        "AppleScript", 
        "Asp", 
        "BASIC", 
        "C", 
        "C++", 
        "Clojure", 
        "COBOL", 
        "ColdFusion", 
        "Erlang", 
        "Fortran", 
        "Groovy", 
        "Haskell", 
        "Java", 
        "JavaScript", 
        "Lisp", 
        "Perl", 
        "PHP", 
        "Python", 
        "Ruby", 
        "Scala", 
        "Scheme" 
       ], 
     minLength: 0 
    }); 

    $('#id').focus(function(){   
     $(this).trigger('keydown.autocomplete'); 
    }); 
}); 

回答

3

尝试使用

$(本).autocomplete( “搜索”)

代替

$(本).trigger( 'keydown.autocomplete')

0

做这种方式

<script type="text/javascript"> 
    $(function() { 
     $('#id').autocomplete({ 
      source: ["ActionScript", 
         "AppleScript", 
         "Asp", 
         "BASIC", 
         "C", 
         "C++", 
         "Clojure", 
         "COBOL", 
         "ColdFusion", 
         "Erlang", 
         "Fortran", 
         "Groovy", 
         "Haskell", 
         "Java", 
         "JavaScript", 
         "Lisp", 
         "Perl", 
         "PHP", 
         "Python", 
         "Ruby", 
         "Scala", 
         "Scheme" 
        ], 
      minLength: 0 
     }).on("focus", function() { 
      $(this).autocomplete("search", ''); 
      }); 

    }); 
</script>